jQuery绑定点击* ANYTHING * but * ELEMENT *

前端之家收集整理的这篇文章主要介绍了jQuery绑定点击* ANYTHING * but * ELEMENT *前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
说有一些元素浮动,我想做一些当我点击任何(divs,体,任何…),但指定的一个(例如div#special)。

我想知道是否有一个更好的方式来实现这除了以下方法我可以想到…

$(document).bind('click',function(e) {
    get mouse position x,y
    get the element (div#special in this case) position x,y
    get the element width and height
    determine if the mouse is inside the element
    if(inside)
        do nothing
    else
        do something
});

解决方法

为了处理“当这个元素被点击时这样做”的情况,一般的方法是向处理“do this”情况的文档添加一个事件处理程序,然后向“except this”元素添加另一个事件处理程序,只是防止点击事件冒泡到文档;
$('#special').on('click',function(e) {
    e.stopPropagation();
});

$(document).on('click',function (e) {
 // Do whatever you want; the event that'd fire if the "special" element has been clicked on has been cancelled.
});

对于那些使用早于jQuery 1.7的版本(就像这个问题被询问的情况),你将不能使用on();而是简单地将on()的2种用途替换为bind();在这种情况下的签名是相同的。

演示在这里; http://jsfiddle.net/HBbVC/

原文链接:https://www.f2er.com/jquery/185405.html

猜你在找的jQuery相关文章