jQuery:对除 <a> 以外的所有元素起作用

jQuery: function on all elements but <a>

我想 运行 在整个网站上使用一个功能,但 不想 在 "a" 上使用。问题是,"a"s 在 "div"s 里面,所以选择像

$(':not(a)').myFunction();

不起作用(因为它是在父 div 上调用的)。听起来像一个简单的问题,我似乎没有找到解决方案。谢谢!

$('body > *').not(':has("a")').myFunction();

您可以将 not() 部分替换为您想要保留的任何内容。以上应该适用于您的示例。

你应该像这样用 .not() 函数来做:

$('*').not('a').myFunction();

http://api.jquery.com/not/

我现在通过取消绑定 'a' 上的函数来做到这一点。

$('a').hover(
        function () {
            $('#tooltip').hide().addClass("hover");
...

$("body").on( "click", function() {
    ....
});

$("a").click(function() {
    $("body").off("click");
});