Есть ли способ получить текст селектора, который вызвал некоторую функцию (если он существует) из функции?
Например,
$('#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/ ) но уметь узнать, какой из них был найден, когда я попаду внутрь функции.
Эту информацию можно получить с помощью объекта события
.
$('#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/
$('#foo, .bar').click(GOTEMM(event) {
if(event.target.id === 'foo'){
alert('foo');
}
elseif(event.target.className === 'bar'){
alert('bar');
}
});
Вы можете использовать $(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/