2011-12-20 91 views
2

我有很多元素在我的頁面上有.photo類。有沒有辦法過濾jQuery中沒有觸發事件的匹配元素?

我選擇它們是這樣的:

$('#photos-container .photo').hover ... 

有沒有辦法過濾掉不火的懸停事件的要素是什麼?

+2

你的意思是「目前沒有徘徊的元素」?我不明白當事件*沒有被解僱時你怎麼可以用元素做些什麼...... – lonesomeday 2011-12-20 15:33:30

+0

這就是我的意思。 – Slick23 2011-12-20 15:34:14

+0

那麼你想怎麼做呢? – lonesomeday 2011-12-20 15:36:05

回答

6

什麼

$('#photos-container .photo').hover(function(e) { 
    var elementsThatDidntFire = $('#photos-container .photo').not(this); 
} 
+0

我結束了這個 – Slick23 2011-12-20 16:00:35

1
$('#photos-container .photo').hover(function(e) { 
    var elementsThatDidntFire = $('#photos-container .photo').filter(function() { 
     return this !== e.target; 
    }); 
}, function() { 

}); 

http://jsfiddle.net/aUmNK/3/

2

使用.not過濾:

$('#photos-container .photo').hover(function() { 
    $('#photos-container .photo').not(this).addClass('hover'); 
}, function() { 
    $('#photos-container .photo').not(this).removeClass('hover'); 
}); 

代碼:http://jsfiddle.net/T6xGj/5/

1

與DaDaDom的答案類似,但它會緩存元素,因此不會在每個事件中重新選擇。

var photos = $('#photos-container .photo').hover(function(e) { 
    var elementsThatDidntFire = photos.not(this); 
}); 
相關問題