1

是否有一些等价物this可以从e.target

e.target可以是 的孩子this

$(e.target).closest("a")如果您知道 click 函数绑定到的元素的选择器是什么,则可以这样做。

但是,如果你不知道选择器怎么办?


编辑:澄清:

我在 TypeError: Cannot call method 'createDocumentFragment' of undefined尝试测试点击功能时遇到错误。

我已经将点击功能绑定到这样的元素: $(".original_list_trigger").click(Helpers.originalTextButtonClick);

这是这样定义的:

Helpers: {
        originalTextButtonClick: function(e) {
            var self = $(this);
            console.log(self);
...
}...}

console.log(self) 没有给出元素,而是函数本身,这不是我想要的。$(this) 应该是具有绑定到点击事件的功能的元素,对吧?

这是 $(this):在此处输入图像描述 所以,它看起来像 $(this),是对象Helpers... :-\


更新:

基本上,我很笨。问题是由这个被调用引起的:

Helpers.originalTextButtonClick();<- 我没有将任何东西作为 e 传递,所以.. 当然 e.anything 不会被定义。

由于我通过 Jasmine 运行测试,http ://pivotal.github.io/jasmine/ ,我需要找到一种方法来模拟事件对象,并且this. 或者我可以触发对元素的点击(我可能会这样做,因为这更容易)

4

3 回答 3

2

看一下 currentTarget 道具

  $("p").click(function(event) {
      alert( event.currentTarget === this ); // true
    }); 

jQuery event.currentTarget

编辑后:

originalTextButtonClick: function(e) { var self = $(e.currentTarget); 控制台日志(自我);... }

于 2013-07-15T14:17:44.063 回答
0

这应该有效:

Helpers: {
        originalTextButtonClick: function(e) {
            var closestAnchorElement = $(e.currentTarget).closest("a");
...
}...}
于 2013-07-15T14:21:48.957 回答
0

我们可以用 -

$("p").click(function(event) {
    alert(event.toElement); 
}); 

试试这个

于 2013-07-15T14:40:43.203 回答