我正在将live()
函数迁移到jQuery中的on()
方法,但是我遇到了一个我不确定的小问题,非常感谢一些建议。< / p>
正如jQuery文档所述:
$('.test').live({
click: function(){
alert('.test Clicked')
}
});
被替换为:
$(document).on('click','.test',function(){
alert('.test Clicked')
});
上述工作没有任何问题(据我所知)。但是,如果我的选择器稍微具体,如下所示,我无法让它工作:
$(document).on('click',$('.test',element),function(){
alert('.test Clicked')
});
是否无法将选择器放入第二个参数?如果没有,我如何在不指定'id'的情况下解决这个问题?
任何帮助非常感谢
答案 0 :(得分:4)
我希望该行能够阅读:
$(element).on('click','.test',function(){
alert('.test Clicked')
});
答案 1 :(得分:2)
on()方法只接受文本选择器。 on()方法的整个目的是让您可以委派事件,因此您不需要提供选择器上下文。如果你想将一个事件委托给元素中的.test,那么你会这样做:
$(element).on('click','.test',function() {
alert('.test clicked');
});
答案 2 :(得分:1)
$(document).find(element).on('click','.test',function(){
alert('.test Clicked')
});
文档可以删除 - 但应该理解这个概念。
xxx.subelement.subsubelement