我得到了下面的jQuery表达式,在函数中,我需要一个对被单击对象的引用,有没有办法做到这一点?
$('#tagList li').click(function() {
/* contents */
});
发布于 2009-06-25 13:08:41
是的,this
关键字引用了被单击的DOM元素。你可以像这样“包装”它:
$(this)
这将允许您将其视为jQuery对象。
发布于 2019-06-19 02:52:51
添加一个新的答案,它将涵盖更多的用例,特别是当您想使用箭头函数时。
同时,也建议您不要将JS点击添加到安莉元素。相反,您应该使用嵌套在此元素中的按钮或锚点(可单击的内容)。
由于您单击的元素可能是子元素,因此您需要确保以正确的元素为目标。
在我的示例中,我将把click赋值给li中的一个按钮以及它上的一个类。标记将简单地为:
<ul id="taglist">
<li><button class="tag-button">Tag 1</button></li>
<!-- ... -->
</ul>
然后是javascript:
$('#tagList li button.tag-button').click((e) => {
const thisButton = $(e.target).hasClass('tag-button')
? $(e.target) : $(e.target).closest('.tag-button');
// do something with thisButton
});
这样可以确保您的目标是注册了单击的元素。如果您的按钮内有任何嵌套标记(如或),则事件目标可能是嵌套元素,而不是您想要分配单击的元素。
https://stackoverflow.com/questions/1043797
复制相似问题