EmployeeId是具有一组选项的select元素的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"));
同样的事情发送到控制台。
我缺少什么,有什么不同,为什么一种方法没有附加事件处理程序?
答案 0 :(得分:2)
.live
需要使用选择器,因为它将事件处理程序绑定到document
,然后测试事件的原点(或路径中的任何元素)是否与选择器匹配。
如果没有提供选择器,它将无法工作。这就是为什么链接像$('foo').children().live(..)
这样的方法也不起作用的原因。
自jQuery 1.7起,.live
由于其文档中列出的各种原因而被弃用:http://api.jquery.com/live/。