2011-11-09 15 views
3

私はクラスを持つ要素を選択する際にいくつかの問題を抱えています。
私の場合、同じクラスのリンクを返すこのAJAXクエリがあります。 リンクをクリックするとイベントが発生するはずですが、そうではありません。

私はクラスを持つ要素がクリックされたときに何も起こらず、次に同じクラスのページに直接リンクしようとしたときに警告を発しました。今度は警告を出します。

何が起こっている ? Ajaxのクエリをチェックし、ユーザーがオンラインであり、この1分ごとをした場合、要素は、クラス「友人」を持っていると私は、このコードによって、それを呼び出すようにしてみてください。jQueryセレクタが機能しない

$('.friend').click(function(){ 
    alert('clicked'); 
}); 

何もして表示するものでhappendsませんajaxリクエスト。それはサイトに直接置かれたリンクに応答します。

+1

の場合、これは、毎日数回を頼まれます。私を騙しを見つけよう。 – zzzzBov

+0

friendクラスの要素にHTMLを投稿できますか? – ThinkingStiff

+0

どのようにこのポストはこれに似ていますか? – Flaashing

答えて

1

liveを使用してみてください:

$('.friend').live('live',function(){ 
    alert('clicked'); 
}); 

それは、は、そのセレクタと存在する存在のアイテムとアイテムにそのハンドラを追加します。

+0

それでもうまくいけない:/ Flaashing

+0

@Flaashingそれはあなたが選んだ答えから見ることができます(私と同じですが、後で答えました:-P) – Neal

+0

私は吸うあなたはofc正しい答えでした:) これは今働いています、私はちょうどコードでsomのものを変更する必要がありました;)ありがとうalot btwはあなたですか? – Flaashing

1

ライブ機能を使用します。はるかに "信頼できる"ものです。

$('.friend').live('click', function(){ 
    alert('clicked'); 
}); 
+0

私はアイデアが好きですが、 "信頼性の高い"ものがとても好きではありません。これは、AJAX指向のイベントハンドラとはまったく異なります。 – Alex

0

問題はclickが実行された瞬間に、DOMにある要素に結合するjQueryのclick機能です。あなたのajaxコールによって追加されたリンクは後で来るので、これを逃してしまいます。新しい統一on構文はjQuery 1.7の場合と使用上のシナリオ

$('.friend').live('click', function(){ 
    alert('clicked'); 
}); 

のこのタイプのためのjQueryの< 1.7使用live

$(document).on('click', '.friend', function(){ 
    alert('clicked'); 
}); 
+0

'on'はセレクターパラメーターが指定されていない限り、イベントの委任を行いません。あなたがしなければならない '$(document.body).on( 'クリック'、 '.friend' ...)'を試してください。しかし、それは本質的にその時点で 'live'と同じです。 '。 – zzzzBov

+0

@zzzzBovはい、あなたは正しいです。まだ新しい構文 – JaredPar

+0

に合わせて調整してください。私は約10回[docs on 'on](http://api.jquery.com/on/)を読んだが、それが言及されるたびにそれらを参照する必要がある。 – zzzzBov

関連する問題