我有两个针对同一元素的点击处理程序。
说#1
$(':input, a').bind('click', function(e) {
if(e.ctrlKey) {
// do something with all links and inputs
}
});
和#2:
$('a#some-special-link').click(function() {
// do something special also with current link only
});
当我第一次点击链接“a#some-special-link”时,我总是在jQuery核心内部出现错误: 返回jQuery类型!==“undefined”&& !jQuery.event.triggered?
if ( !eventHandle ) {
elemData.handle = eventHandle = function() {
// Handle the second event of a trigger and when
// an event is called after a page has unloaded
return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
jQuery.event.handle.apply( eventHandle.elem, arguments ) :
undefined;
};
}
错误说: TypeError:在线输入错误:2200来源:http://localhost/js/jquery-1.5.1.js
只有在我第一次点击#some-special-link链接时才会发生错误。下次每个点击处理程序都能正常工作。
我不确定是什么原因。我需要的是执行的#1和#2点击处理程序。
请帮助我找到那里发生的事情......
更新: 我收到同样的错误(当我将事件更改为悬停,并将鼠标悬停到任何链接或输入时):
$(':input, a').bind('hover', function(e) ...
答案 0 :(得分:0)
你可以缩短第二次点击处理程序与onclick =“someFunction();”的绑定吗?因为它是一个你要搜索的ID,首先应该只有1个元素与第二个选择器一起返回?所以你的代码看起来像是:
$(':input, a').bind('click', function(e) {
if(e.ctrlKey) {
// do something with all links and inputs
}
});
...
<a id="some-special-link" onclick="someFunction();"></a>
HTH