有没有办法从jQuery点击事件中找出这个?

时间:2013-07-15 14:13:28

标签: javascript jquery

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

派生

e.target可以是this的孩子。

如果你知道选择器对于click函数绑定的元素是什么,你可以做$(e.target).closest("a")

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


修改: 澄清:

我正在体验一个 我尝试测试点击功能时出现TypeError: Cannot call method 'createDocumentFragment' of undefined错误。

我已将click函数绑定到一个元素,如下所示:         $(".original_list_trigger").click(Helpers.originalTextButtonClick);

并且定义如下:

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

console.log(self)不提供元素,但是函数本身,这不是我想要的。 $(this)应该是具有绑定到click事件的函数的元素,对吧?

这是$(this):enter image description here 所以,它看起来像$(this),是对象Helpers ...: - \


更新:

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

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

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

3 个答案:

答案 0 :(得分:2)

看看currentTarget prop

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

JQuery event.currentTarget

编辑后:

originalTextButtonClick:function(e){             var self = $(e.currentTarget);             的console.log(个体); ... }

答案 1 :(得分:0)

这应该有效:

Helpers: {
        originalTextButtonClick: function(e) {
            var closestAnchorElement = $(e.currentTarget).closest("a");
...
}...}

答案 2 :(得分:0)

我们可以使用 -

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

Try This