¿Por qué un cierto código jQuery sólo funcionan si es al final de mi sección html-cuerpo?
-
11-09-2019 - |
Pregunta
Tengo el siguiente código para la creación de fichas. Funciona al final de la sección del cuerpo del HTML, pero no si lo coloco al principio - antes de que todos los divs se definen. ¿Por qué podría ser?
<script type="text/javascript">
$("ul.tabs li.label").hide();
$("#tab-set > div").hide();
$("#tab-set > div").eq(0).show();
$("ul.tabs a").click(
function() {
$("ul.tabs a.selected").removeClass('selected');
$("#tab-set > div").hide();
$(""+$(this).attr("href")).show();
$(this).addClass('selected');
return false;
}
);
$("#toggle-label").click( function() {
$(".tabs li.label").toggle();
return false;
});
</script>
Solución
que necesita para envolverlo con un bloque de lista de documentos. esto evita que el código de la cocción hasta que la página se ha cargado completamente.
<script type="text/javascript">
$(function() {
// do something on document ready
$("ul.tabs li.label").hide();
$("#tab-set > div").hide();
$("#tab-set > div").eq(0).show();
$("ul.tabs a").click(
function() {
$("ul.tabs a.selected").removeClass('selected');
$("#tab-set > div").hide();
$(""+$(this).attr("href")).show();
$(this).addClass('selected');
return false;
}
);
$("#toggle-label").click( function() {
$(".tabs li.label").toggle();
return false;
});
});
</script>
Otros consejos
Es más probable porque el DOM todavía no está listo, y por lo tanto no existe.
Por lo tanto usted tiene que hacer lo siguiente:
$(function() {
// Any code in here will only be executed when the DOM is ready.
});
jQuery(function($) {
// put your code in here and it will be executed
// when the document has fully loaded.
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow