私は、メニューの第1レベルのLI項目を実行するループを持っています。私はループの終わりを検出したい、しかし、私が得るプリントアウトは2回実行されるようだ。だから、私のロジック火災倍jQuery - ループが2回実行されるのはなぜですか?
var numNavItems = $("#navigation > li").size() - 1;
$("#navigation > li").each(function(i) {
$(this).delay(i * 300).animate({ opacity: 1 }, 300);
// This runs twice
$("#content").append("<p>Loop number: " + i + " out of " + numNavItems + "</p>");
if(i == numNavItems) {
//$("#navigation li").css({ "opacity" : 1 });
//alert("End! Number of items = " + numNavItems + ". Last item = " + i);
}
});
:
は、ここに私のJSです。なぜそれが私の入れ子リストになるのでしょうか?
ここではHTMLだ...
<ul id="navigation">
<li class="selected"><a href="./">Home</a></li>
<li><a href="./portfolio/">Portfolio</a>
<ul>
<li><a href="#">Cosmos</a></li>
<li><a href="#">Remora</a></li>
<li><a href="#">Caspian</a></li>
<li><a href="#">Megaway</a></li>
</ul>
</li>
<li><a href="./philosophy/">Philosophy</a></li>
<li><a href="./about/">About</a></li>
<li><a href="./contact/">Contact</a></li>
</ul>
私は、最初のレベルのみLIさんを見つけるために ">" を使用。
それは印刷します。あなたの助けのための
Loop number: 0 out of 4
Loop number: 1 out of 4
Loop number: 2 out of 4
Loop number: 3 out of 4
Loop number: 4 out of 4
Loop number: 0 out of 4
Loop number: 1 out of 4
Loop number: 2 out of 4
Loop number: 3 out of 4
Loop number: 4 out of 4
感謝します。マイケル 。
domが準備完了しているときに呼び出されますか? –
それは私のために一度実行されるように見えます:http://jsfiddle.net/UBVkn/それは2回呼び出すかもしれない提供されたスクリプトの外部に何かがありますか? –
jQuery 1.6.2で確認しましたが、すぐに実行されます – Anatoly