解除特定jquery元素的绑定

解除特定jquery元素的绑定,jquery,bind,unbind,Jquery,Bind,Unbind,假设我想通过一个特殊函数处理页面上的所有链接,所以我会: $('a').bind("click", handleLinks); 但我有一个导航栏,上面有我想用不同方式处理的链接。所以我想这样做,但不起作用: $('#navbar a').unbind("click", handleLinks); 我不想在第一条语句中特别排除导航栏,因为内容是动态加载的,因此我需要监视单击的元素将根据内容而变化。基本上,我希望能够从最初绑定的较大的初始元素子集中动态地解除特定元素子集的绑定 有什么建议吗 ::

假设我想通过一个特殊函数处理页面上的所有链接,所以我会:

$('a').bind("click", handleLinks);
但我有一个导航栏,上面有我想用不同方式处理的链接。所以我想这样做,但不起作用:

$('#navbar a').unbind("click", handleLinks);

我不想在第一条语句中特别排除导航栏,因为内容是动态加载的,因此我需要监视单击的元素将根据内容而变化。基本上,我希望能够从最初绑定的较大的初始元素子集中动态地解除特定元素子集的绑定

有什么建议吗

::更新::


我真诚的道歉,你们都是对的——命令的调用顺序有些古怪。对不起

奇怪-看起来不错。你有没有测试过你最初的陈述是在选择你认为它能做什么

编辑- 好的,我做了一个测试页面

<body>
        <a href="#" class="a">Test A</a>
        <a href="#" class="a">Test A</a>
        <a href="#" class="a">Test A</a>
        <a href="#" class="b">Test B</a>
        <a href="#" class="a">Test A</a>
        <a href="#" class="b">Test B</a>


        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
        <script type="text/javascript">

                $(function(){

                    $('a').bind("click", testClick);
                    $('a.b').unbind("click", testClick);


                });

                function testClick(){
                    alert("Link Clicked");
                };
    </script>
    </body>
这很好,但是如果我以内联方式构建函数,我需要从select元素中解除所有事件的绑定以将其删除。不确定这是否适用,但值得一提


你介意多发一点代码吗?看起来可能还有其他问题。

我同意《启示录》9的说法,那就是你所拥有的似乎应该有用。也许不同的方法会有更好的结果。。。将:not选择器与live一起使用如何。Live将确保选择器与动态添加的元素一起工作

$('a:not(#navbar a)').live("click", handleLinks);

我不想在第一个语句中特别排除导航栏谢谢Scott,我编辑了答案。虽然如果navbar id是动态的,这对他来说可能仍然不起作用,这听起来可能是。我在我的帖子中添加了一些测试代码作为演示,我正在做几乎相同的事情,我没有问题。有没有可能你可以发布一些周围的代码,让我们可以尝试解决它?很高兴你得到它的工作!
$('a').not('#navbar a').bind('click', handleLinks);