事件委托中的目标元素的mouseover事件冒泡到委托元素,怎么取消呢?

1.动态生成的元素$(".bizPart"),目的是在mouseover元素$(".bizPart")的时候,另一个元素$("#servTip")移动。
2.代码:

$("body").on('mouseover', $(".bizPart"), function (e) {
    $("#servTip").css({ "left": x, "top": y, "opacity": 1 });
    e.stopPropagation();  //没起作用
}

3.问题:现在是不仅在$(".bizPart")上移动鼠标$("#servTip")会动,而且在body上移动鼠标$("#servTip")也会动,我觉得是冒泡上去了,但是取消又没有用,怎么才能取消移上body,不触这个事件呢?谢谢

阅读 3.9k
3 个回答

建议在.bizPart元素外面在包一层.wrap,你这样是直接绑定在body上的事件,只能阻止冒泡到body以上的元素。

$(".wrap").on('mouseover', $(".bizPart"), function (e) {
    e.stopPropagation();
    $("#servTip").css({ "left": x, "top": y, "opacity": 1 });
}

望采纳

通过if判断e.currentTarget的元素是否是.bizPart,是的话再执行函数体

$("body").on('mouseover', ".bizPart", function (e) {
   $("#servTip").css({ "left": x, "top": y, "opacity": 1 });
}
好像这样就可以了呢,谢谢各位
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题