Используя $ (this) с несколькими селекторами, можете ли вы ссылаться на один, а не на другой? - PullRequest
2 голосов
/ 24 июля 2011

Допустим, у вас есть два таких селектора:

$(".class1, .class2").click(function() {
    $(this).hide();
});

Похоже, что $(this) относится к обоим селекторам. Есть ли способ ссылаться только на одно, а не на другое? (Я не имею в виду просто использовать .class1 или .class2, потому что я хочу, чтобы он ссылался на элемент, по которому щелкают, если есть несколько элементов с этими классами.)

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

$(".class1").click(function() {
    $(this).hide();
    $(.element).show();
});

    $(".class2").click(function() {
       $(.element).show();
});

Ответы [ 2 ]

5 голосов
/ 24 июля 2011

Нет, здесь:

$(".class1, .class2").click(function() {
    $(this).hide();
});

this в функции обратного вызова относится только к одному элементу, который был нажат.

Нажмите на кнопку и убедитесь сами: http://jsfiddle.net/ambiguous/GyEck/

4 голосов
/ 24 июля 2011
if ($(this).is(".class2"))

...