質問

のは、私は特別な機能を経由して、ページ上のすべてのリンクを処理したいので、私は言ってみましょう。

$('a').bind("click", handleLinks);

しかし、私は違った扱いにしたいリンクを持つナビゲーションバーを持っています。だから私は動作しません。これは、これをしたい:

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

コンテンツが動的にロードされたので、私は、特に最初の文でナビゲーションバーを除外したくないので、私はクリックを監視する必要がある要素は、内容に応じて変化します。基本的に私は、最初にバインドされた要素のより大きな初期のサブセットから、動的要素の特定のサブセットをアンバインドすることができるようにしたい。

任意の提案ですか?

:: UPDATE ::

私の誠実な謝罪は、あなたがすべて正しいです - コマンドが呼び出されていたためでファンキーなものがありました。申し訳ありません!

役に立ちましたか?

解決

正しく見える

Strange-。あなたの最初の文は、あなたはそれがないと思うものを選択していることをテストしたことがありますか?

http://docs.jquery.com/Events/unbindする

編集 - [OK]を私がやったテストページ

<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>

これは私が私の機能をインラインで構築されている場合しかし、私はそれを削除するために選択の要素からすべてのイベントをバインド解除するために必要な、正常に動作します。それが適用されるかどうわからなく、言及する価値がありません。

あなたは間違って何か他のものがあるかもしれないように見える>もう少しコードを掲示気にしてくださいます。

他のヒント

私はそれはあなたが動作するはず持っているもののように思えるapocalypse9に同意します。おそらく、異なるアプローチがどのように使用することについて...より良い結果を持っているでしょう。(ライブでセレクタではありません)。ライブは、セレクタを動的に追加要素で動作することを確認します。

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

http://docs.jquery.com/Selectors/not#selectorする

http://docs.jquery.com/Events/liveする

$('a').not('#navbar a').bind('click', handleLinks);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top