关于jQuery事件的问题

时间:2011-08-09 10:08:31

标签: javascript jquery

  

可能重复:
  How to detect a click outside an element?

我在页面上有一个元素说“myDiv” 使用jQuery,如何触发一个事件,该事件将跟踪“myDiv”之外的任何其他区域的“点击”

我说“点击”因为我想在iPad上测试它...你甚至可以假设一个正常的“点击”事件而不是“点击”...点是它应该是“myDiv”的“外部”

3 个答案:

答案 0 :(得分:0)

标签上的事件应该这样做。

$("html").click(function(e) {
    alert("Test");
});

实施例: http://jsfiddle.net/HenryGarle/HWApM/

根据您的需要,您可以使用not selector:

$("div:not(div#winner)").live('click', function(e) {
    alert("Test");
});

实施例: http://jsfiddle.net/HenryGarle/HWApM/1/

或者如果它是一个嵌套的div:

$("html").click(function(e) {
    alert("Test");
});

$("#winner").live('click', function(e) {
     e.stopPropagation(); 
});

实施例: http://jsfiddle.net/HenryGarle/HWApM/2/

答案 1 :(得分:0)

尝试将单击处理程序绑定到body元素,并将另一个单击处理程序绑定到myDiv,这会停止click事件的传播。这是一个展示这个概念的jsFiddle

答案 2 :(得分:-1)

使用以下内容,您可以注册单击任何区域时要执行的操作

$(document).click(function() {
  //your code here
});

之后你只需从你的div中删除回调。

$("#myDiv").unbind("click");

这应该有用。