2011-01-27 12 views
1

でjQueryのセレクタ内の$(this)を使用:私のjavascriptのは、このようになります文脈

$(document).ready(function() { 
    $("a:not(.noajax)", $('#header, #content')).live('click', function(event) { 
     ajaxCall($(this).attr("href")); 
     event.preventDefault(); 
    }); 
)}; 

$(この)セレクタは「」オブジェクトを取得していないようだ、それはなししかし、正常に動作しますセレクタコンテキスト。私はここで間違って何をしていますか?


jQueryのにコンテキストを持つセレクタを変換のようになります。だから私は私の$(この)コンテキストではなく、selctorを参照していることを考える

$(context).find(selector) 

。何か案は?

+1

'( 'ヘッダ、#コンテンツを')$を使用してみてください( ':ありません(.noajax)')を見つける。。生きる(...)' --doesこと助けてください?何かは、それがスコープに関連していると私に伝えます。 –

+1

あなたが選択しようとしている要素を示すことができる小さなhtmlスニペットを入手すると便利です。 – Adrian

+1

または 'this'の代わりに' event.target'を参照してください – Raynos

答えて

1

コンテキストは、jQueryオブジェクトではなく、要素または文字列でなければなりません。さらに、IDはユニークであるため、ここでは1つのコンテキストしか必要ありません。

$("a:not(.noajax)", '#header').live('click', function(event) { 
    ajaxCall($(this).attr("href")); 
    event.preventDefault(); 
}); 

See a live example.

+0

liveに両方のスコープを設定するには、#headerと#contextの親要素にコンテキストを設定する必要がありますか? –

+1

はい、ここに例があります:http://jsfiddle.net/rRqYj/2/ – mVChr

+0

ありがとう!今の意味がある –

関連する問題