我有一些动态创建的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