2012-03-29 8 views
0

誰かが私に次のことがうまくいかない理由を教えてもらえないかと思います。ユーザーがテーブルtbody trをクリックしたとき

$("tbody[name=leadstores] tr").live('click',function(e){ 
     alert("clicked"); 
     alert(this.attr("id")); 
}); 
+2

は、あなたのHTMLのサンプルを投稿してもらえますか? – twaddington

+0

.liveが推奨されていません。あなたは、古いライブラリを使用する必要が任意の理由は?(関数(.click使用します){});代わりに –

+1

@IsaacFife 'click'は代表団の代理人には適していません'live()'のようなもの... 'on()'を使った方がはるかに適切です – charlietfl

答えて

2

あなたの根本的な問題は、jQueryの機能でthisをラップする必要があります。それ以外の場合は、jQueryのメソッドを使用することはできません。これはあなたのJavaScriptエラーに寄与しないものの

alert($(this).attr("id")); 

、あなたが入力要素のために受け入れるものでname属性を使用しないでください。

さらに、.live()はjQuery 1.7から償却されました。代わりに.on()を使用してください。

+0

name属性はTBODY要素には無効です。これはINPUT要素に限らず、BUTTON、TEXTAREA、APPLET、SELECT、FORM、FRAME、IFRAME、IMG、A、INPUT、OBJECT、MAP、PARAM、METAのすべての要素に対して有効です。 – RobG

0

いくつかのこと:

thisはjQueryオブジェクトではなく、jQueryのメソッド

を使用する$(this)に包まれなければならないあなたはTBODYname属性を持っていますか? TBODYの一般的なことではありません。それは名前を持っていない場合は、セレクタは、他の人が指摘しているとして、あなたはjQueryのラッパーでthisをラップする必要がある、けれどもそれ

+0

私はそれを私のtbodyに加えました。 – RussellHarrower

+0

に何が追加されましたか?あなたのhtmlを投稿していない場合 – charlietfl

0

は、あなたが提供されたコードのサンプルは(動作しないことが判明しません。ここだ

(いくつかのサポートHTMLと)あなたのコードの例

http://jsfiddle.net/Wmswm/