2009-08-07 14 views
1

のは、私は特別な機能を経由して、ページ上のすべてのリンクを処理したいので、私は言ってみましょう:バインド解除特定のjqueryの要素

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

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

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

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

提案がありますか?

:: UPDATE ::

心からの謝罪、あなたはすべて正しいです - コマンドが呼び出されていたためでファンキーなものがありました。ごめんなさい!

+0

私は、私はほとんど同じことをやっていると私は問題を持っていないよデモ としての私の記事にいくつかのテストコードを追加しました。周囲のコードを投稿してトラブルシューティングを試みる可能性がありますか? –

+0

うまくいけばうれしい! –

答えて

0

これは間違いです。あなたは最初の声明があなたが思うものを選択していることをテストしましたか?

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> 

をしました。それが当てはまるかどうかは分かりませんが、言及する価値はありますか。

もう少しコードを投稿してください>他に何か間違っているように見えますか?

2

私はapocalypse9に同意します。これはあなたが仕事しているもののようです。おそらく別のアプローチが良い結果をもたらすでしょう::notセレクターをlive()で使うのはどうですか? Liveは、セレクタが動的に追加された要素で動作することを保証します。

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

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

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

+0

「最初のステートメントでnavbarを特に除外したくない」 –

+0

ありがとうScott、私は答えを編集しました。 #navbar idが動的であれば、まだ彼のためにはうまくいかないかもしれませんが、それはそうであるように聞こえます。 –

0
$('a').not('#navbar a').bind('click', handleLinks); 
関連する問題