0

在事件侦听器中,我需要对作为事件源的元素的引用。我怎么得到它?

对于一段时间以来使用 JavaScript 的任何人来说,这应该是一件轻而易举的事。

包括事件处理程序在内的所有函数都在全局范围内,因此,隐含地成为 DOMwindow对象的一部分。

function WireHandlers() {
    $('.updateResourceImageButton').click(UpdateResourceLinkClickedHandler);
}

function UpdateResourceLinkClickedHandler() {
  // I would like a reference to the hyperlink/anchor
  // that was actually clicked, i.e. the hyperlink that
  // was the source of this event

  // would the keyword 'this' evaluate to the element I need?
  // or will it evaluate to the HTML DOM 'window' object
  // in this context?
}

$(document).ready(function () { WireHandlers(); });
4

2 回答 2

2

当您通过引用传递函数时,您仍然可以正常访问参数。因此event.targetorthis将是UpdateResourceLinkClickedHandler函数中的被点击元素:

function UpdateResourceLinkClickedHandler(e) {
    // clicked element as a native DOM element
    var foo = e.target; 
    var bar = this;

    // jQuery object containing clicked element
    var $foo = $(this);
}

请注意,在此示例中,两者都foobar包含相同的值。

于 2013-10-09T12:46:26.687 回答
1

我认为你可以这样做

$(this)

这也来自 jquery 文档

var target = $( event.target );

如在此页面http://api.jquery.com/event.target/并查看本文以获取更多信息 http://www.pkshiu.com/loft/archive/2009/01/understanding-this-this- and-event-in-a-jquery-callback-function

于 2013-10-09T12:46:29.433 回答