Использование «this» в множественном селекторе jquery - PullRequest
1 голос
/ 20 апреля 2011

Я пытаюсь понять это, но пока нет радости. По причинам, по которым я не могу перейти сюда, мне нужно использовать и «this», и другой селектор для привязки события щелчка. Пример

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

Но я не могу понять, как это сделать. У кого-нибудь есть идеи, как мне этого добиться?

Ответы [ 3 ]

5 голосов
/ 20 апреля 2011

Большинство методов jQuery (которые не возвращают значение) автоматически применяются к каждому элементу в коллекции, поэтому each() не требуется.

Сочетая siblings() и andSelf(), код можно упростить до:

$('.mySelector').siblings('img').andSelf().click(function (e) {
    e.preventDefault();
    doStuffTo($(this));
});
2 голосов
/ 20 апреля 2011

Вместо этого вы можете сделать это:

$('mySelector').each(function(){
    $(this).siblings('img').andSelf()).bind('click', function(e){
        e.preventDefault();
        doStuffTo($(this));
    });
});
1 голос
/ 20 апреля 2011

Не совсем понятно, что вы пытаетесь сделать, но, возможно, это так:

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

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