2011-04-20 32 views
1

我試圖找出這一個,但沒有喜悅。對於我不能進入這裏的原因,我需要同時使用「這個」,而另一個選擇綁定一個click事件。例在jQuery多重選擇器中使用「this」

$('mySelector').each(function(){ 
    $(this, this.siblings('img')).bind('click', function(e){ 
     e.preventDefault(); 
     doStuffTo($(this)); 
    }); 
}); 

但我無法弄清楚如何做到這一點。任何人都知道我會如何實現它?

回答

5

大多數jQuery方法(沒有返回值)會自動應用到每一個元素在收集,所以each()是沒有必要的。

結合siblings()andSelf(),代碼可以簡化爲:

$('.mySelector').siblings('img').andSelf().click(function (e) { 
    e.preventDefault(); 
    doStuffTo($(this)); 
}); 
+0

,我喜歡你的好......這是清潔。 – cdeszaq 2011-04-20 13:44:20

+0

謝謝老兄!完善。 – 2011-05-03 09:05:23

1

這不是完全清楚你想要做什麼,但也許那就是:

var f = function(e){ 
    e.preventDefault(); 
    doStuffTo($(this)); 
}; 

$('mySelector').each(function() { 
    $(this).bind('click', f); 
    $(this).siblings('img').bind('click', f); 
}); 
2

相反,你可以這樣做:

$('mySelector').each(function(){ 
    $(this).siblings('img').andSelf()).bind('click', function(e){ 
     e.preventDefault(); 
     doStuffTo($(this)); 
    }); 
});