1

if thenステートメントを作成してスライドショーのループを作成しようとしていますが、スライドはif thenステートメントなしで機能しますが、ループしません。ステートメントでは、それは機能しません。ここにコードがあります

var $num = null;
$num = parseInt(0, 10);
$("document").ready(function onReady() {
    If($num = 6) {
        $num = parseInt(0, 10);
        $num = parseInt($num, 10) + 1;
        var final = "#img" + $num;
        $(final).fadeTo(3000, 1, function() {
            $(final).fadeTo(3000, 0, onReady);
        });
    }
    Else {
        $num = parseInt($num, 10) + 1;
        var final = "#img" + $num;
        $(final).fadeTo(3000, 1, function() {
            $(final).fadeTo(3000, 0, onReady);
        });
    }

});​
4

1 に答える 1

7

JavaScript では大文字と小文字が区別されます。 if/elseではありませんIf/Else。そして、比較は で行われ==ます。をチェックするつもりで、誤って を に 割り当て6ます。$numif ($num = 6)($num == 6)

// No need for this:
// $num = parseInt(0,10);
// Just initialize to zero
var $num = 0;
// However, since you initialized it, it will _never_ be 6 on page load as you test for...
// So maybe you don't actually want this...    

// Fix the $(document).ready()  
$(document).ready(function() {

   // Never going to be 6 since you initialized to zero...
   if ($num == 6 ){
        $num = parseInt(0,10);
        $num = parseInt($num,10) + 1;
            var final = "#img" + $num;
            $(final).fadeTo(3000,1, function() {$(final).fadeTo(3000,0, onReady);});
    }
    else{
        $num = parseInt($num,10) + 1;
        var final = "#img" + $num;
        $(final).fadeTo(3000,1, function() {$(final).fadeTo(3000,0, onReady);});
    }
});

Web ブラウザーのエラー コンソールの使用に慣れます。Firefox 11 には 1 つが組み込まれており、Firebug は優れた拡張機能です。Chrome/Safari には開発者ツールがあり、IE ではコンソールに対して F12 キーを押します。エラーはコンソールに報告されます。

アップデート:

2 回目の読み取りでは、実際にonReadyは関数として定義して に渡そうとしていた可能性があり$(document).ready()ます。その場合は、この方法が適しています。

// If this is the correct intent, then it _does_ make sense to initialize $num 
// since it will be modified when onReady is called
var $num = 0;

// Define the onReady function
function onReady() {
   // Never going to be 6 since you initialized to zero...
   if ($num == 6 ){
        $num = parseInt(0,10);
        $num = parseInt($num,10) + 1;
            var final = "#img" + $num;
            $(final).fadeTo(3000,1, function() {$(final).fadeTo(3000,0, onReady);});
    }
    else{
        $num = parseInt($num,10) + 1;
        var final = "#img" + $num;
        $(final).fadeTo(3000,1, function() {$(final).fadeTo(3000,0, onReady);});
    }
}
// Pass the defined function to ready()
$(document).ready(onReady);
于 2012-04-18T01:38:43.883 に答える