我试图切换.abb-bar
,使用$.toggle()
,只要其父(.abb
)得到一个点击。但每当.abb-bar
得到一个点击,它会自己切换,因为event-bubbling
。 e.stopPropagation()
应该解决问题,但它不起作用。可以做些什么?stopPropagation()不适用于委托事件
HTML
<span class="col-auto entry-ops abb">
<i class="fa fa-bars"></i>
<div class="list-group abb-bar">
<button class="list-group-item list-group-item-action d-flex justify-content-center" data-user="nick">follow</button>
<button class="list-group-item list-group-item-action d-flex justify-content-center complain">complain</button>
<button class="list-group-item list-group-item-action d-flex justify-content-center show-entry-number" data-toggle="tooltip">'.$row['entry_id'].'</button>
</div>
</span>
JS
$(document).on('click', '.abb', function(e) {
e.stopPropagation();
$(this).children('.abb-bar').toggle();
});
stopPropagation将停止从点火那是它的父母......不是孩子的事件......但你坐在文件,所以点击已经到达那里。 – epascarello
我没有得到它为什么人们downvote别人的答案,不给理由 – krishnar
@ krishnar你的答案可能是downvoted,因为答案只包括代码和解释文本。尝试添加一些关于您的代码更改内容的解释,以创建更好的收到答案。 –