$("div#foobar").live('click', function() {
});
$(window).hashchange(function() {
});
如果hashchange
事件发生,我怎么能停止发送click
事件。
注意 在点击事件我发射ajax并更改哈希...而在hashchange我正在做的事情。由于Click事件也会更改哈希,因此会发生火灾。所以,我希望每当点击事件触发时,hashchange不应该被激活..
答案 0 :(得分:10)
停止传播并防止默认行为。
$("div#foobar").live('click', function(event) {
event.stopPropagation();
event.preventDefault()
});
答案 1 :(得分:1)
基本上,你不能做你想做的事。如果要更改散列,当然会触发hashchange事件。这就是它的用途。阻止传播click
事件不会阻止hashchange
事件的处理。
设计您的系统,以便这不是问题。
答案 2 :(得分:0)
(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
});
})();