2012-11-24 118 views
1

在我的網頁新的動態元素我有jQuery的:綁定功能已經定義

$(function() 
{ 
    $('.load').click(function() 
    { 
    var val = $(this).attr('value'); //get value of the button that called this function 
    //do stuff}); 
}); 

和一些按鈕的初始HTML定義:

<input type="button" value="getData1" class="load" /> 

如果我以後dinamically添加的多個按鈕相同的類,並希望它們以相同的方式操作,我如何將它們綁定到原始函數?

我在看.on,但它似乎定義了一個NEW函數。我希望有一種方法可以使用已經定義的方法。

或者我應該單獨定義函數並從兩個地方調用它?如果是這樣,我怎麼能通過調用該函數的元素作爲參數?

任何援助將非常感謝。

回答

3

這就是你所說的on。 On允許您將偵聽器附加到包含要監視的元素的文檔部分。

$(document).on('click', '.load', function() { 
    var val = $(this).attr('value'); 
}); 

使用document是不是最好的,所以最好你會在把一些選擇那裏,將匹配周圍所有的按鈕,當前和未來的元素。

在調用on後添加到document中的按鈕也會觸發此處理程序,即使它們稍後被添加。

+0

甜!當你說「使用'文件'不是最好的」時,是否涉及到不必要地監視文檔某些區域的處理工作?或者因爲它可能綁定不是有意的元素?要麼...?非常感謝您的幫助! – Henry

+1

@Henry在添加事件時沒有額外的工作,但使用'document'意味着每次單擊頁面上的任何位置時都會運行JS代碼,然後必須檢查它是否與'.load'匹配。如果你知道所有的按鈕都在特定的內部,那麼如果你點擊頁面的其他部分,它不需要做任何額外的工作。 – loganfsmyth

+0

讚賞! – Henry