Javascript 如何获取调用事件处理程序的当前HTML元素
如何在我正在连接的事件处理程序中获取对HTMLDOM元素的引用Javascript 如何获取调用事件处理程序的当前HTML元素,javascript,jquery,Javascript,Jquery,如何在我正在连接的事件处理程序中获取对HTMLDOM元素的引用 var dashboard = { WireHandlers : function() { $(".approveButton") .unbind("click") .click(dashboard.approve) }, approve : function() {
var dashboard =
{
WireHandlers : function()
{
$(".approveButton")
.unbind("click")
.click(dashboard.approve)
},
approve : function()
{
// In here, I would like a reference
// to the HTML DOM element that was clicked
// Also, I would like its id
}
}
只需将一个参数添加到
approve
函数(通常称为event
)中,并对其调用currentTarget
:
approve : function(event) {
// In here, I would like a reference
// to the HTML DOM element that was clicked
event.currentTarget
// Also, I would like its id
event.currentTarget.id
}
请注意,您还可以在approve
方法中使用this
来引用单击的元素
approve : function() {
this // or $(this) if you want to use jQuery
}
请注意,在这种情况下,
target
和currentTarget
可以互换。但是,在更复杂的情况下,.只需向approve
函数(通常命名为event
)添加一个参数,然后调用currentTarget
:
approve : function(event) {
// In here, I would like a reference
// to the HTML DOM element that was clicked
event.currentTarget
// Also, I would like its id
event.currentTarget.id
}
请注意,您还可以在approve
方法中使用this
来引用单击的元素
approve : function() {
this // or $(this) if you want to use jQuery
}
请注意,在这种情况下,
target
和currentTarget
可以互换。但是,在更复杂的场景中
是jQuery元素(这是DOM元素)
此
不会绑定到仪表板
(因为您只是提供回调函数,所以必须使用例如仪表板.wireHandler
)
是jQuery元素(这是DOM元素)
此
不会绑定到仪表板
(因为您只是提供回调函数,所以必须使用例如仪表板.WireHandlers
)来自jquery文档:
您可以通过“this”变量访问acted-On元素:
approve : function()
{
var elem = this;
var id = elem.id;
}
从以下jquery文档:
您可以通过“this”变量访问acted-On元素:
approve : function()
{
var elem = this;
var id = elem.id;
}
非常感谢。:-)我也为你的第二个问题添加了答案(id
)。非常感谢。:-)我也为你的第二个问题添加了答案(id
)。非常感谢。:-)事实上,我更喜欢你的答案,因为它是jQuery,而且更简短,更甜美,但我将另一个答案标记为正确答案,因为这也是正确答案,而且它来得更早。我希望我能将多个答案标记为正确答案。我会将这一部分添加到我的答案中,以便人们获得完整答案。非常感谢。:-)事实上,我更喜欢你的答案,因为它是jQuery,而且更简短,更甜美,但我将另一个答案标记为正确答案,因为这也是正确答案,而且它来得更早。我希望我能将多个答案标记为正确答案。我会将这一部分添加到我的答案中,这样人们就可以得到完整的答案。请看