首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jquery中停止事件传播?

如何在jquery中停止事件传播?
EN

Stack Overflow用户
提问于 2011-05-17 22:14:15
回答 3查看 2.4K关注 0票数 6
代码语言:javascript
复制
$("div#foobar").live('click', function() {  

});

$(window).hashchange(function() {   

});

hashchange事件触发时,我如何停止触发click事件。

点击事件的注意到我正在触发ajax并更改哈希.关于hashchange,我正在做一些事情。因为Click也会更改散列,所以hashevent会触发。因此,我希望无论何时单击event,哈希变换都不应该是火。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-17 22:49:22

代码语言:javascript
复制
(function() {

    var fire_hashchange = true;

    $("div#foobar").live('click', function() {  
        fire_hashchange = false;
        // do stuff
    });

    $(window).hashchange(function() {   
        if (!fire_hashchange) {
            fire_hashchange = true;
            return;
        }
        // do stuff
    });
})();
票数 0
EN

Stack Overflow用户

发布于 2011-05-17 22:22:43

停止传播并防止默认行为。

代码语言:javascript
复制
$("div#foobar").live('click', function(event) {  
    event.stopPropagation();
    event.preventDefault()
});
票数 10
EN

Stack Overflow用户

发布于 2011-05-17 22:43:41

基本上,你不能做你想做的事。如果您要更改哈希,那么当然会触发hashchange事件。这就是它的意义所在。阻止click事件的传播并不会阻止对hashchange事件的处理。

设计你的系统,这样就不会有问题了。

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

https://stackoverflow.com/questions/6037793

复制
相关文章

相似问题

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