我找不到任何解决方案来让这个jquery事件工作。
$(window).one('click',function(){
console.log('hide something');
return false;
});
$('a.ajax').live('click', function(e){
console.log('ajax requesting');
return false;
});
我希望"A“元素应该做ajax请求,而不是它的默认值,以及触发窗口的单击事件一次。从A的单击中删除"return false“将触发窗口的单击,但不会阻止其在第一次单击后的默认行为,并继续使用非ajax请求。
这两个处理程序在不同的闭包中,所以我不能创建一个变量来帮助它工作,我也不想创建一个全局变量。
从我上面的例子中应该会得到:
-> ajax请求(第1次单击)
->隐藏内容(第1次单击)
-> ajax请求(第二次单击)
-> ajax请求(第三次单击)
感谢您的帮助!
发布于 2012-04-11 01:31:05
在您的a
事件处理程序中,添加e.preventDefault()
作为第一行(并删除返回false)。
$('a.ajax').live('click', function(e) {
e.preventDefault();
console.log('ajax requesting');
});
‘'return’将取消所有未来的事件(甚至是传播到窗口的事件),但preventDefault()只会阻止常规操作发生,但会继续事件链。
更多信息:jQuery e.preventDefault documentation
https://stackoverflow.com/questions/10093526
复制相似问题