Есть ли способ отфильтровать совпадающие элементы, которые не вызвали событие в jQuery? - PullRequest
2 голосов
/ 20 декабря 2011

У меня много элементов с классом .photo на моей странице.

Я выбираю их так:

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

Есть ли способ отфильтровать элементы, которые не инициировали событие hover?

Ответы [ 4 ]

6 голосов
/ 20 декабря 2011

А как же

$('#photos-container .photo').hover(function(e) {
  var elementsThatDidntFire = $('#photos-container .photo').not(this);
}
2 голосов
/ 20 декабря 2011

Использование .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 голос
/ 20 декабря 2011

Аналогично ответу DaDaDom, но он кэширует элементы, поэтому вы не выбираете их заново для каждого события.

var photos = $('#photos-container .photo').hover(function(e) {
  var elementsThatDidntFire = photos.not(this);
});
1 голос
/ 20 декабря 2011
$('#photos-container .photo').hover(function(e) {
    var elementsThatDidntFire = $('#photos-container .photo').filter(function() {
        return this !== e.target;
    });
}, function() {

});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...