2011-12-20 177 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); 
});