Javascript 事件在我的代码中未被激发?
我正在尝试将一些事件侦听器添加到Javascript 事件在我的代码中未被激发?,javascript,javascript-events,Javascript,Javascript Events,我正在尝试将一些事件侦听器添加到文档,但由于某些原因,单击事件似乎从未触发,因为从未调用回调: function NotJquery(element) { this.element = element; return this; } NotJquery.prototype.eventFired = function(event, callback) { console.log('in NotJquery prototype'); return function
文档
,但由于某些原因,单击
事件似乎从未触发,因为从未调用回调:
function NotJquery(element) {
this.element = element;
return this;
}
NotJquery.prototype.eventFired = function(event, callback) {
console.log('in NotJquery prototype');
return function (event, callback) {
element.addEventListener(event, callback, true);
};
};
var $ = function(element) {
return new NotJquery(element);
};
function Test() {
}
Test.prototype.addListener = function() {
console.log('in Test prototype');
$(document).eventFired('click', function() {
console.log('click event fired');
});
};
(function() {
var test= new Test();
test.addListener();
}());
控制台中记录了消息:“in Test prototype”和“in NotJquery prototype”,但当我单击文档中的某个位置时,控制台中不会输出消息“click event fired”。我看不出我的代码有什么问题。有人有办法让它工作吗
元素
未在eventFired
函数中定义(但这不是唯一的问题)。这里有一个最基本的更新:
NotJquery.prototype.eventFired = function(event, callback) {
var self = this; // <== Change 1 of 2
console.log('in NotJquery prototype');
return function () {
self.element.addEventListener(event, callback, true);
// ^-- Change 2 of 2
};
};
NotJquery.prototype.eventFired=函数(事件,回调){
var self=this;//您的客户机代码期望如下所示:
NotJquery.prototype.eventFired = function(event, callback) {
this.element.addEventListener(event, callback, false);
};
正在工作的演示:eventFired
方法不接受任何参数,但您正在传递它。对不起,我的错误,但即使修复了,它仍然不会激发。这样,客户端代码需要是$(文档)。eventFired('click',function(){console.log('click event fired');})();
,这没有任何意义;P@Esailija:代码相当混乱,我指出了几个问题,但确实需要重写。@user6669:抱歉,结果比预期的更为苛刻。我建议继续进行实验,并大量阅读技术和JavaScript的工作原理。很好祝你好运。