2012-04-10 3 views
0

私はここで何がうまくいかないのか知る必要があります。jquery問題点火時にクリックすると.on

$(function() { 
$("tbody[name=leadstores]").on("click","tr",function(e){ 

alert("clicked"); 
}); 

}); 

私は何か間違っていると思います。

は、私がここに

.live

を使用する場合、このスクリプトが動作していたことを、言うことを忘れテーブル

<table id="tableprod" style="width: 100%; "> 
<thead id="storelocation" class="fixedHeader" style="min-width: 800px; "> 
<tbody id="tbbody" name="leadstores"> 

<tr id="20"> 
<td name="street" class="company" style="width: 400px; padding-right: 2%; ">Shop 1012, Westfield Bondi Junction, 500 Oxford Street</td> 
<td name="suburb" class="company" style="padding-right: 3%; ">Bondi Junction</td> 
<td name="postcode" class="field" style="padding-right: 3%; ">2022</td> 
<td name="state" class="field" style="padding-right: 3%; ">NSW</td> 
<td name="phone" class="company">(02) 9388</td> 
</tr> 
<tr id="21"> 
<td name="street" class="company" style="width: 400px; padding-right: 2%; ">Kiosk KG17, Westfield Doncaster, 619 Doncaster Road</td> 
<td name="suburb" class="company" style="padding-right: 3%; ">Doncaster</td> 
<td name="postcode" class="field" style="padding-right: 3%; ">3108</td> 
<td name="state" class="field" style="padding-right: 3%; ">VIC</td> 
<td name="phone" class="company">(03) 9840</td> 
</tr> 
<tr id="23"> 
<td name="street" class="company" style="width: 400px; padding-right: 2%; ">Kiosk 66A, Macquarie Centre, cnr Herring & Waterloo Rd</td> 
<td name="suburb" class="company" style="padding-right: 3%; ">North Ryde</td> 
<td name="postcode" class="field" style="padding-right: 3%; ">2113</td> 
<td name="state" class="field" style="padding-right: 3%; ">NSW</td> 
<td name="phone" class="company">(02) 9889</td> 
</tr> 
</tbody> 
</table> 
+3

を試してみてください、jQueryの1.7.xで推奨されていません。 – SLaks

+0

エラーコンソールを確認してください。他のスクリプトエラーである可能性があります – Shyju

+0

あなたの質問に答える鍵は、すでにあなたに伝えられたSLAKsとしてあなたのHTMLを投稿することにあります。 – j08691

答えて

0

ページがロードされた後.live()あなたは、DOM(のtbody [名= leadstores]あなたのケース中)

をターゲットとする場合ソルバ

問題になる可能性がありますが、動的に追加されます。

.live()あなたがそれらの

でイベントをバインドできるように、新しく追加されたDOMをリッスン動的にDOMを追加しました。

EDIT:.live以来

は()

$("#tableprod").on("click","tr",function(e){ 
    alert("clicked"); 
}); 

は、あなたのHTMLに依存するであろうこの

+0

しかし、jQueryの.onため.live落としているので、我々はまた、前方1.7.x – RussellHarrower

+0

うーんを移動する必要があります。私はあきらめて、ちょうど.clickを使うつもりです – InspiredJW

+0

は動作しませんでしたので、私は推奨されていません().live参照 – RussellHarrower

0

は、あなたのテーブル要素を持つTBODY要素を持っている必要がありますあなたのjsが動作するためのname = "leadstores":

<table> 
<tbody name="leadstores"> 
<tr><td>&nbsp;</td></tr> 
</tbody> 
</table> 
+0

.liveを使用したときにスクリプトが正常に動作していた – RussellHarrower

+0

テーブルがDOMに動的に追加されていますか?私。ページが読み込まれたときにページに既に存在していますか?そうでなければ、on()は動作しません。 on()メソッドの説明から:**イベントハンドラは現在選択されている要素にのみバインドされています。彼らはあなたのコードが)(.onする呼び出しを行う時にページ上に存在する必要があります。** あなたは()メソッドを上使用したい場合、あなたはすでにのように、ページ上に存在する要素に適用する必要があります。 'body':$( "body")。on( "click"、 "tbody [name = 'leadstores'] tr"、function(e){alert( "clicked");}); – azawaza

関連する問題