それは私のhtml-bodyセクションの最後にだならば、なぜいくつかのjqueryのコードは動作しますか?
-
11-09-2019 - |
質問
私はタブを作成するための次のコードを持っています。 div要素のすべてが定義されている前に - それは、HTML本体部の最後ではなく、私が最初にそれを置く場合は動作します。なぜそれがあるかもしれない?
<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>
解決
あなたはドキュメント準備ブロックでそれをラップする必要があります。これは、ページが完全に読み込まれるまで、発射コードを防ぎます。
<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>
他のヒント
DOMはまだ準備ができていないので、それは可能性が高いですので、彼らは存在しません。
そのため、あなたが次のことを行う必要があります:
$(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.
});
所属していません StackOverflow