如果未单击元素,则jquery

时间:2011-06-08 19:37:19

标签: javascript jquery

jQuery中是否有一种有效的方法来检测是否已经点击了特定元素(以及它的子元素)之外的其他元素?

<body>
  <header></header>
  <p>stuff<p>
  <div class="floating-form">
    <form>more stuff</form>
  </div>
  <footer></footer>
</body>

通过聆听浮动表单以外的任何其他内容,删除浮动表单的最佳方法是什么?

4 个答案:

答案 0 :(得分:3)

  1. 将点击事件监听器绑定到$(document),删除 div.floating-form
  2. 将点击事件绑定到 div.floating-form stops event propogation

答案 1 :(得分:2)

通常的方法是将click事件处理程序分配给特定元素,除了停止事件传播之外什么都不做。然后为整个页面(即文档)分配另一个单击处理程序,以删除相关元素。单击元素不会传播到文档,因此您将获得所需的功能。

答案 2 :(得分:0)

您可以使用event.target属性来确定触发点击的元素。

http://api.jquery.com/event.target/

答案 3 :(得分:0)

$(document).click(function() {
    //do something
});
$(".floating-form").click(function() {
    return false;
});