Javascript jQuery-在自定义函数中使用$(this)
我正在尝试创建一个自定义函数,该函数先解除绑定,然后绑定一个事件。看起来是这样的:Javascript jQuery-在自定义函数中使用$(this),javascript,jquery,dom,Javascript,Jquery,Dom,我正在尝试创建一个自定义函数,该函数先解除绑定,然后绑定一个事件。看起来是这样的: App.bindEvent = function(selector, eventType, eventHandler) { $(selector).unbind(eventType); $(selector).bind(eventType, function(event) { eventHandler(event); }); }; 然而,我面临的问题是,我不能使用this
App.bindEvent = function(selector, eventType, eventHandler) {
$(selector).unbind(eventType);
$(selector).bind(eventType, function(event) {
eventHandler(event);
});
};
然而,我面临的问题是,我不能使用this关键字来引用被单击的DOM元素。例如,我不能这样做:
App.bindEvent("#my-element", "click", function() {
var myId = $(this).attr("data-my-id");
});
如何让this关键字像jQuery.bind中那样指向单击的DOM元素
感谢您的帮助。您需要在对象的上下文中调用处理程序:
eventHandler.call(this, event);
您需要在对象的上下文中创建处理程序:
eventHandler.call(this, event);
更改:
eventHandler(event);
致:
这会将函数的作用域更改为与原始绑定调用的作用域相同。更改:
eventHandler(event);
致:
这会将函数的作用域更改为与原始绑定调用的作用域相同。改为:
App.bindEvent = function(selector, eventType, eventHandler) {
var element = this;
$(selector).unbind(eventType);
$(selector).bind(eventType, function(event) {
eventHandler.call(element, event);
});
};
这个怎么样
App.bindEvent = function(selector, eventType, eventHandler) {
var element = this;
$(selector).unbind(eventType);
$(selector).bind(eventType, function(event) {
eventHandler.call(element, event);
});
};
我想你是指
event.target
例如:
App.bindEvent("#my-element", "click", function(event) {
var myId = $(event.target).attr("data-my-id");
});
看看吧我想你是在指
event.target
例如:
App.bindEvent("#my-element", "click", function(event) {
var myId = $(event.target).attr("data-my-id");
});
退房