2012-05-01 166 views
0

我正在将我的live()函数迁移到on()在jQuery中的方法,但我遇到了一个我不确定的小问题,并非常感谢一些建议。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

我期望行改为:

$(element).on('click','.test',function(){ 
    alert('.test Clicked') 
}); 
+0

Ahhhhhhhh,不敢相信我没有想到这一点。会放弃它并让你知道。谢谢:-) –

+0

您传奇!非常感谢,不敢相信我没有想到这一点。全部排序! :-D –

1
$(document).find(element).on('click','.test',function(){ 
    alert('.test Clicked') 
}); 

文件可以删除 - 但你应该了解的概念。

xxx.subelement.subsubelement 
2

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

$(element).on('click','.test',function() { 
    alert('.test clicked'); 
});