有没有办法从函数中获取调用某个函数(如果存在)的选择器的文本?
例如
$('#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/),但当我进入函数内部时,就能知道哪个是匹配的。
发布于 2010-08-27 16:25:16
你可以通过event object获取这些信息。
$('#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/
发布于 2010-08-27 16:28:02
$('#foo, .bar').click(GOTEMM(event) {
if(event.target.id === 'foo'){
alert('foo');
}
elseif(event.target.className === 'bar'){
alert('bar');
}
});发布于 2010-08-27 16:37:49
您可以在回调中使用$(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/
https://stackoverflow.com/questions/3582394
复制相似问题