jQuery On Selector问题

时间:2012-05-01 12:46:58

标签: javascript jquery

我正在将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'的情况下解决这个问题?

任何帮助非常感谢

3 个答案:

答案 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