0

我正在将我的live()函数迁移到on()jQuery 中的方法,但是我遇到了一个我不确定的小问题,非常感谢一些建议。

正如 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”的情况下解决这个问题?

非常感谢任何帮助

4

3 回答 3

4

我希望这行代码如下:

$(element).on('click','.test',function(){
    alert('.test Clicked')
});
于 2012-05-01T12:48:33.140 回答
2

on() 方法只接受文本选择器。on() 方法的全部目的是让您可以委托事件,因此您不需要提供选择器上下文。如果你想将一个事件委托给元素内部的 .test ,那么你可以这样做:

$(element).on('click','.test',function() {
   alert('.test clicked');
});
于 2012-05-01T12:49:23.483 回答
1
$(document).find(element).on('click','.test',function(){
    alert('.test Clicked')
});

可以删除文档 - 但您应该了解这个概念。

xxx.subelement.subsubelement
于 2012-05-01T12:49:00.133 回答