我正在使用BS4手风琴彼此嵌套。
我已经遇到了父子对子以及子母对子的事件冒泡,我已经使用event.stopPropagation()解决了子子对子的事件,但是为什么父子对子子的冒泡并没有停止呢?
这是代码
$('.card > .collapse').on('shown.bs.collapse', function(e){
e.preventDefault();
e.stopPropagation();
$(this).parent().find(".flaticon-down-arrow").removeClass("flaticon-down-arrow").addClass("flaticon-right-arrow");
}).on('hidden.bs.collapse', function(e){
e.preventDefault();
e.stopPropagation();
$(this).parent().find(".flaticon-right-arrow").removeClass("flaticon-right-arrow").addClass("flaticon-down-arrow");
})
注意:-检查类的更改
答案 0 :(得分:0)
事件冒泡仅在DOM树上(从子级到父级,再到祖父母级,等等)。它不会在DOM树中消失。因此,父项上的任何事件都不会对子项产生影响。
documentation指出在事件冒泡期间(对于单击事件):
浏览器检查在冒泡阶段实际单击的元素是否在其上注册了onclick事件处理程序,如果运行,则运行该处理程序。 然后,它移动到下一个直接祖先元素,然后执行相同的操作,然后是下一个,依此类推,直到到达该元素。