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 回答
1

在我的案例中,我在其他选项卡中打开了 firebug,所以它向我显示了这个错误。

  • 解决方案:我关闭了一个选项卡并刷新了页面。它正在工作:)
于 2016-08-07T19:29:39.373 回答