0

EmployeeId 是带有一组选项的选择元素的 ID。这种方法不起作用:

var tar = document.getElementById("EmployeeId");
$(tar).live("click", function(){
 console.log("Changed");
});

但是,这种方法可以:

$("#EmployeeId").live("click", function(){
 console.log("Changed");
});

$("#EmployeeId")和有什么区别$(tar)??我的印象是两者之间没有区别。此外,当我尝试

console.log($(tar));
console.log($("#EmployeeId"));

同样的东西被发送到控制台。

我错过了什么,有什么不同,为什么一种方法不附加事件处理程序?

4

1 回答 1

2

.live需要使用选择器,因为它将事件处理程序绑定到document然后测试事件的来源(或路径中的任何元素)是否与选择器匹配。

如果没有提供选择器,它将不起作用。这就是为什么像这样的链接方法$('foo').children().live(..)也不起作用。

从 jQuery 1.7 开始,由于.live其文档中列出的各种原因而被弃用:http: //api.jquery.com/live/

替代方案是.on(1.7) 和.delegate(1.4.2)。

于 2012-07-30T23:19:21.413 回答