【问题标题】:Firebug doesn’t display my javascript? can't find the errorFirebug 不显示我的 javascript?找不到错误
【发布时间】:2016-10-12 12:20:45
【问题描述】:

我想用 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>

【问题讨论】:

  • 黑体字!在我的文字中!
  • 当我在 Firefox 中运行它时,我收到一个 Firebug 错误 $(function () {var createFunction = function (i) {return function () {alert(i);};};for (var i = 0; i &lt; 5; i++) {$("p").appendTo("body").on("click", createFunction(i));}}) is not a function
  • type="text/javascript" 添加到您的第一个&lt;script&gt; 标签
  • @KrisIvanov & nbrooks 这对于 html5 来说是不必要的。

标签: javascript jquery firebug


【解决方案1】:

你必须把最后一个括号去掉,我猜代码应该在 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>

See here 了解如何使用 jquery 使代码在 dom 负载上运行。

【讨论】:

  • @acne 嘿,它有效!谢谢你!有趣的是,这是萤火虫应该指出的语法错误……还有一件事为什么我在浏览器中看不到任何内容? P 应该附加到正文 uhn?
  • 创建元素时必须使用&lt;p&gt;,否则只是jquery的普通选择器。 jQuery 搜索 existing p 元素并尝试将其附加到正文中。因为不存在一个,所以没有附加任何内容。我更新了我的答案。
  • 另外值得注意的是,由于您有 HTML5 文档类型,因此 type="text/javascript" 是可选的。
【解决方案2】:

去掉})后面的括号:

$(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

【讨论】:

    【解决方案3】:

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

    • 解决方案:我关闭了一个选项卡并刷新了页面。它正在工作:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      相关资源
      最近更新 更多