2012-01-03 77 views

回答

4

即使您將「onclick」添加到按鈕,它不會被瀏覽器解析和處理,也不會創建事件處理程序。

你最好的選擇是創建一個事件處理出來的按鈕本身的,去掉「的onclick」行了,這在文件中準備塊:

$("#d1").on('click', 'input:button', function() { 
    alert($("#dataSources").val()); 
}); 

這將作爲事件處理程序附有自己#d1,並將事件本身委託給點擊的按鈕。如果您創建或銷燬按鈕,這不會影響處理程序。

+0

我如何在jQuery的1.3.2版本中實現這一點。我們的開發版本只有1.3.2 – Saravanan 2012-01-03 07:02:49

+0

通過升級到jQuery 1.7.1 ASAP !!。 jquery 1.4.2引入了$ .delegate,相當於$ .on,解決了很多bug,並且比1.3.2快得多。 jquery 1.6.2也很穩定,我用它來製作。 (我仍然必須驗證1.7的生產,並且由於某些原因,我喜歡x.x.2版本...... X'D)。但是,如果你真的不能升級,$ .live是不錯的選擇,或者你可以使用$ .bind,將「event」傳遞給回調函數,然後在'if(event.target =='buttonId '){...'塊。 – roselan 2012-01-03 07:15:16

+0

檢查[這小提琴](http://jsfiddle.net/YNM68/10/)爲1.3.2 – roselan 2012-01-03 07:26:55

0

而是定義append方法內點擊事件,你可以內document.ready使用on方法綁定事件假設你正在使用jQuery 1.7.1中的jsfiddle鏈接提供。

E.g:

$("#deleteDataSource").on("click", function(){ 
    //do your work here 
}); 

注:我覺得你應該跟你的問題發表您的代碼。

+0

由於DOM準備就緒時我沒有deleteDataSource,因此我無法使用此代碼。 – Saravanan 2012-01-03 06:35:08

+0

同意,@ roselan的回答是正確的。 – 2012-01-03 06:37:35

相關問題