Jquery Получить согласованный текст селектора изнутри функции

Есть ли способ получить текст селектора, который вызвал некоторую функцию (если он существует) из функции?

Например,

$('#foo, .bar').click(function() {

   // Here I want to figure out if there was a match on #foo, or .bar

});

В основном я хочу иметь составной селектор, подобный указанному выше ( http://api.jquery.com/multiple-selector/ ) но уметь узнать, какой из них был найден, когда я попаду внутрь функции.

1
задан mrkcsc 27 August 2010 в 08:16
поделиться

3 ответа

Эту информацию можно получить с помощью объекта события.

$('#foo, .bar').click(function(event) {

   if(event.target.id === 'foo'){
      alert('foo');
   }
   else if(event.target.className === 'bar'){
      alert('bar');
   }

});

Пример: http://www.jsfiddle.net/8CACU/

Ссылка: http://api.jquery.com/event.target/

2
ответ дан 2 September 2019 в 21:48
поделиться
$('#foo, .bar').click(GOTEMM(event) {

   if(event.target.id === 'foo'){
      alert('foo');
   }
   elseif(event.target.className === 'bar'){
      alert('bar');
   }

});
0
ответ дан 2 September 2019 в 21:48
поделиться

Вы можете использовать $(this) внутри обратного вызова, чтобы получить фактический элемент и получить доступ к атрибуту элемента, который используется в селекторе.

$('#foo, .bar').click(function() { 
    if($(this).attr('id') == 'foo')  {
        alert('foo handled');
    } else if($(this).hasClass('bar')) {
        alert('bar handled');
    }
});

пример jsfiddle: http://jsfiddle.net/us8r9/

0
ответ дан 2 September 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: