首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery:带有一个(单击)事件的实时(单击) ajax

jquery:带有一个(单击)事件的实时(单击) ajax
EN

Stack Overflow用户
提问于 2012-04-11 01:29:22
回答 1查看 1.8K关注 0票数 0

我找不到任何解决方案来让这个jquery事件工作。

代码语言:javascript
运行
复制
$(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请求(第三次单击)

感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-11 01:31:05

在您的a事件处理程序中,添加e.preventDefault()作为第一行(并删除返回false)。

代码语言:javascript
运行
复制
$('a.ajax').live('click', function(e) {
    e.preventDefault();
    console.log('ajax requesting');
});

‘'return’将取消所有未来的事件(甚至是传播到窗口的事件),但preventDefault()只会阻止常规操作发生,但会继续事件链。

更多信息:jQuery e.preventDefault documentation

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10093526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档