7

Firebug を使用してスクリプトをデバッグしたいのですが (ブラウザー ウィンドウに何も表示されないため)、Firefox でスクリプト タブをクリックすると、次のエラー メッセージが表示されます。

タグに「type」属性がある場合は、「text/javascript」または「application/javascript」と同じにする必要があります。また、スクリプトは解析可能 (構文的に正しい) でなければなりません。

私は何を間違っていますか?

これが私のコードです:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>



<script src="jquery-1.7.1.js"></script>
<script type="text/javascript">
$(function() {
/* fix: “close” the value of i inside createFunction, so it won't change */
        var createFunction = function(i) {
            return function() { alert(i); };
        };

        for (var i=0; i<5; i++) {
            $('p').appendTo('body').on("click", createFunction(i));
}

})();
</script>
</body>
</html>
4

3 に答える 3

4

最後の括弧は省略しなければなりません。コードは dom の準備が整った状態で実行する必要があると思います。

<script type="text/javascript">
$(function() {
/* fix: “close” the value of i inside createFunction, so it won't change */
        var createFunction = function(i) {
            return function() { alert(i); };
        };

        for (var i=0; i<5; i++) {
            $('<p>').appendTo('body').on("click", createFunction(i));
}

});
</script>

jquery を使用して dom ロードで実行するコードを作成する方法については、こちらを参照してください。

于 2012-06-15T09:50:08.453 に答える
1

の後の括弧を削除}):

$(function() {
/* fix: “close” the value of i inside createFunction, so it won't change */
     var createFunction = function(i) {
        return function() { alert(i); };
     };

     for (var i=0; i<5; i++) {
            $('p').appendTo('body').on("click", createFunction(i));
     }    
});  //here is the modification
于 2012-06-15T09:49:10.500 に答える