У меня много элементов с классом .photo на моей странице.
.photo
Я выбираю их так:
$('#photos-container .photo').hover ...
Есть ли способ отфильтровать элементы, которые не инициировали событие hover?
А как же
$('#photos-container .photo').hover(function(e) { var elementsThatDidntFire = $('#photos-container .photo').not(this); }
Использование .not фильтрация:
.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/
Аналогично ответу DaDaDom, но он кэширует элементы, поэтому вы не выбираете их заново для каждого события.
var photos = $('#photos-container .photo').hover(function(e) { var elementsThatDidntFire = photos.not(this); });
$('#photos-container .photo').hover(function(e) { var elementsThatDidntFire = $('#photos-container .photo').filter(function() { return this !== e.target; }); }, function() { });
http://jsfiddle.net/aUmNK/3/