我有一些動態創建的HTML代碼,並且可能包含數十個錨點。我想爲每個錨點添加一個點擊處理程序,我可以想到許多不同的方法,但不知道選擇哪一個。假設錨點有一個「myclass」類,點擊時執行的代碼每個都是相同的。實現jQuery點擊功能的最佳方式
方法1
$(document).delegate(".myclass", "click", function() {
// Do some work
});
方法2:
var $a = $("<a href='#' class='myclass'>Text</a>");
$a.bind("click", function() {
// Do some work
});
方法3:
function clickHandler() {
// Do some work
}
var $a = $("<a href='#' class='myclass'>Text</a>");
$a.bind("click", function() {
clickHandler();
});
我喜歡方法2作爲處理函數代碼就是在創建錨點並將其添加到DOM的地方,但是如果我有很多這樣的錨點,那麼JavaScript會有效地創建數十個單獨的函數,還是足夠聰明,只需使用一個?
實際上,我認爲'委託'已被棄用無論如何。我認爲它現在已經開始。 – James 2012-02-14 15:44:27
我很確定'delegate'代替'live'作爲jQuery 1.7,而'on'代替'bind'。來自api.jQuery.com的 – Rob 2012-02-14 15:49:41
:「從jQuery 1.7開始,.delegate()已被.on()方法取代。」 – CompanyDroneFromSector7G 2012-02-14 15:56:26