【问题标题】:jquery and selectorsjquery 和选择器
【发布时间】:2009-10-06 04:58:26
【问题描述】:

我想在 body 标签上有一个 click 事件,但我在 body 标签下有一个 div,我不想让 click 事件打开。我已经尝试过了,但这似乎没有问题:

$("body").not("#InnerDiv").click(function() {
    alert("Hejhej");
});

html:

<body>
   <div id="1">1</div>
   <div id="2">2</div>
   <div id="InnerDiv">InnerDiv</div>
</body>

【问题讨论】:

  • 当你这样做时会发生什么?点击是否仍然会为 InnerDiv 触发,或者点击事件是否不会触发任何内容?
  • 我认为这可以使用标签“事件”

标签: jquery css-selectors


【解决方案1】:

点击事件冒泡。 InnerDiv 上的默认单击处理程序委托给其父级的单击事件。 您可以覆盖该事件并要求它不要冒泡。

$("body").click(function() {
          alert("Hejhej");
      });
$("#InnerDiv").click(function(e) {
          e.stopPropagation();
      });

【讨论】:

  • stopPropagation...这就是我要找的,我在文档中找不到它
  • 是的,jQuery 关于这些方法的文档真的很难找到。
【解决方案2】:

试试


    $("body").click(function() { alert("Hejhej"); });
    $('#InnerDiv').click(function(e) { e.stopPropagation(); });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2015-12-18
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多