2012-01-16 69 views
0

爲什麼下面的代碼不工作:的jQuery活不工作

$('button[name="publish"]', 'button[name="cancel"]').live('click', function(){ 
    alert('ddddd'); 
}); 

是動態生成的HTML基本上是具有這兩個按鈕Facebook的分享對話框:

<input type="button" name="publish" value="Share"> 
<input type="button" name="cancel" value="Cancel"> 
  • 參考的jQuery lib很好並且被檢查
  • 使用準備好的處理程序

該頁面在這裏可以查看:

https://www.facebook.com/pages/Development-Application-Testing-Page/124719744278421?sk=app_126015774115928

+1

用','替換'',''。 – 2012-01-16 11:09:44

+3

你不應該使用現場。你應該使用'delegate()'pre 1.7和'on()'1.7以上。 :)'live()'已經摺舊了。 – 2012-01-16 11:12:05

回答

4

您當前的選擇是對short

$('button[name="cancel"]').find('button[name="publish"]') 

那不是意。您正在尋找:

$('button[name="publish"], button[name="cancel"]') 
+0

事件未觸發仍然:https://www.facebook.com/pages/Development -Application-Testing-Page/124719744278421?sk = app_126015774115928 – Dev555 2012-01-16 11:17:55

+0

@ Dev555我努力了,但是在頁面上找不到這些按鈕。你可以在http://jsfiddle.net上發佈獨立的演示嗎? – 2012-01-16 11:25:13

+0

當您單擊解鎖以在圖像下方下載藍色按鈕時,帶按鈕的提要應該出現。謝謝 – Dev555 2012-01-16 11:26:38

2

因爲你的選擇是稍有不妥。試試這個(注意一個事實,即整個選擇器表達式是引用):

$('button[name="publish"], button[name="cancel"]').live('click', function(){ 
    alert('ddddd'); 
}); 

什麼你現在已經是尋找選擇(button[name="publish"])的第一部分,並使用選擇的第二部分作爲背景(換句話說,它尋找匹配button[name="publish"]的元素並且是匹配button[name="cancel"]的元素的後代)。

另請注意,live方法已棄用。如果你使用jQuery 1.7+,使用on。如果您使用的是舊版本,請使用delegate

+0

事件尚未觸發仍然:https://www.facebook.com/pages/Development-Application-Testing-Page/124719744278421?sk=app_126015774115928 – Dev555 2012-01-16 11:18:08

1
$('input[name=publish] , input[name=cancel]').live('click', function(){ 
    alert('ddddd'); 
}); 
0
 

$('button[name="publish"], button[name="cancel"]').live('click', function(){ 
    alert('ddddd'); 
}); 

 
2

,因爲你嘗試選擇 「輸入」 以$它不工作( '按鈕...')

試試這個

$('input[name="publish"] , input[name="cancel"]').live('click', function(){ 
    alert('ddddd'); 
}); 
+1

+1按鈕選擇符的概念。儘管「固定」代碼存在缺陷。用'''替換'',''。 – 2012-01-16 13:50:36