Javascript onclick函数调用失败
javascript onclick failing on a function call
我有这个html…
<a onclick="search.analysisSelect('2');" href="javascript:void(0);">A Product</a>
…每当我在浏览器(IE, FF和Chrome)中点击该链接时,它都会失败。它告诉我们这个函数不存在。但是,如果我在firebug的控制台中输入确切的函数调用,它就可以正常运行。所以这个函数是存在的
确切的错误信息: "search。analysisSelect不是一个函数"
我最近将"搜索"对象名称更改为"searchTab",并且onclick工作正常。
为什么搜索对象的onclick失败?我很困惑……
这是搜索对象。它存储在一个单独的js文件中,当页面加载时加载。
var search = {
analysisSelect: function(pub) {
$("#tabs").tabs("select", "#analysis");
analysisGrid.refreshSlickGrid(pub, '0', '1', '0');
}
};
哦,我忘了提到,我还在搜索对象中定义了一个init()函数,它在另一个html元素的onclick事件上被调用,并且没有问题。Wtf…
您在哪里定义了search.analysisSelect()
?它应该在锚标记之前定义。
通常使用内联javascript不是一个好主意,考虑使用外部javascript文件并将该函数绑定到锚onclick
事件,如下所示:
window.onload = function() { // ensures that the document is loaded before finding the anchor element
// assign an Id to the anchor tag like this: <a id="idOfAnchorTag" href="#">A Product</a>
var elem = getElementById('idOfAnchorTag');
elem.onclick = function() {
search.analysisSelect('2');
}
}
内联事件处理程序中有一些奇怪的javascript巫术。search
没有被解析为window.search
,它击中了别的东西,我不知道它是什么。
见http://jsfiddle.net/yPhZ8/
但是,我可以告诉你如何解决它。用window.search
代替。
<a onclick="window.search.analysisSelect('2');" href="javascript:void(0);">A Product</a>
见:http://jsfiddle.net/yPhZ8/1/
我今天正好遇到这个问题。结果是,不能使用ID与函数相同的HTML元素。
不要问我为什么,我只想说这与极其懒惰的解析有关。
我的例子:
<dd style="margin-left: 2px;"><input type="button" name="info[add_benefit]" id="add_benefit" value="{L_ADD_BENEFIT}" class="button2"
style="width: 100%;" onclick="add_benefit();" /> </dd>
onclick方法将返回一个错误,指出该函数不存在。显然,它认为按钮本身是功能,但按钮是按钮,因此出现错误。
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 在页面加载/单击事件后,从 JS 文件 1 中的函数调用 JS 文件 2 中定义的函数失败
- Flash v11.8.800.168 函数调用在 Internet Explorer 中失败
- 当调用适配器的过程失败时,失败函数不会执行
- Javascript onclick函数调用失败
- 当我用命名函数替换内联函数时,函数调用失败
- 本机警报上的函数引用失败,调用对象无效
- Jasmine mock因“apply”而失败,但正常函数调用正常
- 用于测试函数调用失败的Jasmine测试