多个选择器:确定触发选择器?
这是一个我无法弄清楚的小问题。我确信有人可以立即回答:
有多个选择器,例如
$('a.button, span.xyz, a.another').click(function(e) {
var clicked_element = ???;
});
,我如何找出实际单击了哪个选择器?我需要像 $(clicked_element)...
一样使用它。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 $(this) 将为您提供被单击的元素..并使用 is() 可以帮助您确定单击的内容。
编辑:
当我写下这个答案时,似乎有更好的方法。 Patrick DW 的评论引起了我的兴趣,我想了解更多。他的澄清在这里 jQuery - 在 a 中组合选择器的问题单个事件处理程序
这将是一种更好的方法
据我了解,如果您的目标是将通用功能放在一个位置,那么这就是应该如何处理它
Using $(this) will get you the element that was clicked.. and using is() can help you determine what was clicked.
Edited:
As I wrote up this answer it seems there is a better approach. Patrick DW's comment intrigued me and I wanted to know more. His clarification is here jQuery - Issues with combining selectors in a single event handler
This would be a better approach
As I understand it if your goal was to place common functionality in one spot then this is how it should be handled
触发事件的元素在函数中以
$(this)
的形式提供,即您还可以使用 is():
The element which triggers an event is available within the function as
$(this)
, i.e.You can also test to identify if the element matches a particular selector using is():
如果这些元素具有不同的功能,我会同意帕特里克和德克斯特关于分离这些元素的观点。但如果您要使用此方法,请尝试使用一些内置的 javascript 方法。我不知道 HTML 标记是什么样子,但假设这个标记,您可以尝试下面的脚本:
I would agree with Patrick and Dexter about separating these elements if they have different functionality. But if you are going to use this method, try using some of the built in javascript methods. I don't know what the HTML markup looks like, but assuming this markup, you can try the script below: