我有如下绑定事件:
$(document).delegate('.budget', 'click', function(e){
if ($(this).hasClass('collapsed')) {
$(this).removeClass('collapsed');
$(this).addClass('expanded');
}
else if ($(this).hasClass('expanded')) {
$(this).removeClass('expanded');
$(this).addClass('collapsed');
}
});
基本上,这在展开和折叠之间切换。
我有另一个事件绑定如下:
$('[id^="tree"]').delegate('.collapsed', 'click', function(e){
var elementId = $(this).attr('id');
hideChildElement(elementId);
});
由第二个事件绑定绑定的元素是由第一个事件绑定绑定的元素的父元素。发生的情况是,从第一个绑定事件方法中单击元素也会触发由第二个事件绑定绑定的事件。我想防止任何事件从第二个事件绑定到第一个事件绑定方法。
如果元素 A 绑定到来自第一个事件绑定的单击事件,并且 B 绑定到第二个事件绑定(A 在 B 内部或 A 是 B 的子级),我不希望 B 的任何事件传播到 A。注意我试过e.stopImmediatePropagation();
但没有没用