2012-03-29 57 views
0

我想知道是否有人可以告訴我爲什麼以下不起作用。當用戶點擊表tbody tr

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

你能張貼您的HTML樣本? – twaddington 2012-03-29 23:08:02

+0

.live已經過時了。你必須使用舊庫的原因嗎?使用。點擊(函數( ){});而不是 – 2012-03-29 23:08:46

+1

@IsaacFife'click'不能替代委託方法od像'live()'...使用'on()'更合適 – charlietfl 2012-03-29 23:11:12

回答

2

您的根本問題是需要在jQuery函數中包裝this。否則,你不能使用jQuery的方法。

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

雖然這不會給你的JavaScript錯誤貢獻,則不應使用任何東西的name屬性接受輸入的元素。

此外,.live()已從jQuery 1.7折舊。您應該使用.on()

+0

名稱屬性對於TBODY元素無效。它不限於INPUT元素,它對以下所有元素都是有效的(並且是必需的):BUTTON,TEXTAREA,APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM和META。 – RobG 2012-03-29 23:57:39

0

幾件事情:

this不是一個jQuery對象,必須被包裹在$(this)使用jQuery方法

確定TBODYname屬性? TBODY不是一件普通的事情。如果沒有一個名稱,然後選擇不會覺得

+0

我將它添加到我的tbody中。 – RussellHarrower 2012-03-30 00:01:15

+0

增加了什麼?如果不工作發佈你的HTML – charlietfl 2012-03-30 00:03:12

0

您提供的代碼示例不工作(儘管,正如其他人所指出的那樣,你需要一個jQuery包裝來包裝this

這裏的你的代碼的例子(有一些支持HTML)

http://jsfiddle.net/Wmswm/