具有:

<div id="outerDiv">
    <div id="innerDiv" style="margin: 10px">Content goes here</div>
</div>


我想确定发生在innerDiv外部但在externalDiv内部的鼠标事件(换句话说,这些事件在innerDiv边距上)。

如果我向外部添加填充或边框,这很容易实现,但是我想知道是否还有另一种方法,而不必向outerDiv添加额外的像素。

谢谢

最佳答案

使用jQuery,我将执行以下操作

$("#outerDiv").bind("event", function(e) {
  if ($(e.target).closest("#innerDiv")) {
    alert("from inner div");
  }
  else {
    alert("from outer div only");
  }
});


说明:

#outerDiv将获得冒泡事件。如果事件的目标或目标的祖先是#innerDiv,那么我们知道它起源于内部div。否则就没有。由于它命中#outerDiv,所以我们知道它发生在#outerDiv的某处,而不是#innerDiv

08-03 18:14