2

我的索引页面上有一个输入:

<input type="button" name="goReplaceAll" value="Go" id="allReplaceGo" style="cursor:hand;" />

以及来自 jquery 的 onclick 调用:

$(document).ready(function() {
        $('#allReplaceGo').click(replaceAll);
});
function replaceAll(){ alert('a'); }

当我单击按钮时,什么也没有发生。当我在 HTML 中使用 onclick="replaceAll()" 时,我收到一个错误:Uncaught ReferenceError: replaceAll is not defined

我无法弄清楚这些错误之间的联系,或任何可能的原因。

该代码目前位于http://www.texturepacker.net

编辑:看起来我在 Firefox 和 Chrome 中得到了两个不同的结果,Chrome 在页面加载后 Firefox alert('a')'s 什么都不做。现在我只是很困惑?

编辑:在我的代码后面似乎有一个不相关的语法错误正在中断调用。现在在 dom 加载时调用 replaceAll(),我现在的问题是为什么没有在单击时启动 replaceAll() 而是在 dom 加载后,我是否遗漏了一些明显的东西?

4

3 回答 3

1

看起来像这里的语法错误......

脚本文件中的第 196 行说

$(this).("src",tmpSrc);

它应该是

$(this).attr("src",tmpSrc);

修复它,它应该一切都好..

也在7号线

$('#allReplaceGo').live("click",replaceAll());

应该是

$('#allReplaceGo').live("click",replaceAll);

同样从 1.7 版开始,不推荐使用.live()。尝试使用.on()代替

于 2012-09-28T17:28:08.550 回答
-2

您的代码应如下所示

    $(document).ready(function() {
        $('#allReplaceGo').click(function(){
           replaceAll()
        });
    });
    function replaceAll(){ alert('a'); }
于 2012-09-28T17:24:05.963 回答
-2

发生这种情况,可能是因为函数 replaceAll 在 jQuery 范围之外。尝试将她放在 $(document).ready 范围内。

于 2012-09-28T17:22:34.887 回答