是否有一些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):
所以,它看起来像$(this),是对象Helpers
...: - \
更新:
基本上,我很笨。 这个问题是由于被调用引起的:
Helpers.originalTextButtonClick();
< - 我没有传递任何东西作为e,所以..当然e。任何东西都不会被定义。
由于我正在通过Jasmine http://pivotal.github.io/jasmine/运行测试,我需要找到一种方法来模拟事件对象,this
。或者我可以触发元素的单击(我可能会这样做,因为这更容易)
答案 0 :(得分:2)
看看currentTarget prop
$("p").click(function(event) {
alert( event.currentTarget === this ); // true
});
编辑后:
originalTextButtonClick:function(e){ var self = $(e.currentTarget); 的console.log(个体); ... }
答案 1 :(得分:0)
这应该有效:
Helpers: {
originalTextButtonClick: function(e) {
var closestAnchorElement = $(e.currentTarget).closest("a");
...
}...}
答案 2 :(得分:0)