jQuery上下文回调

时间:2013-01-21 13:48:46

标签: jquery scope

有没有办法在“文档”以外的其他上下文中运行一组侦听器?

这是限制选择器的好方法。

这样的事情:

$(".main", function(){
   $(".child-1").click(function() {  /* .... */ });  // .main .child
   $(".child-2").click(function() {  /* .... */ });  // .main .child-2
   $(".child-3").click(function() {  /* .... */ });  // .main .child-3
});

而不是:

$(".main .child-1").click(function() {  /* .... */ });  // .main .child
$(".main .child-2").click(function() {  /* .... */ });  // .main .child-2
$(".main .child-3").click(function() {  /* .... */ });  // .main .child-3

通过使用它,您可以使用范围而不是一个大(文档)范围。

那么,那些在jQuery中存在的东西?尝试谷歌,真的找不到任何东西..

2 个答案:

答案 0 :(得分:2)

最接近的是这样的事情

var $ctx = $('#context');

$ctx.find('.something').click(function(){ });

答案 1 :(得分:-1)

$('.main').on("click", ".child-1", function() {

}).on("click",".child-2", function() {

}).on("click",".child-3", function() {

});

或者,如果他们都这样做......

$('.main').on("click", ".child-1, .child-2, .child-3", function() {

});

http://jsperf.com/on-click-performance - 您会看到这种方式比其他解决方案更快。