我只是有点胡闹,试图模仿某些 jQuery 函数(尝试为 jQuery 函数编写普通的 javascript
)我在这里做了这个
function ezWork(element) {
if (typeof element === 'string') {
document.getElementById(element);
console.log('Got element');
}
}
ezWork.prototype.on = function(event, callback) {
if (typeof event === 'string') {
if (event === 'click') {
if(window.addEventListener) {
element.addEventListener('mousedown', callback);
alert('addEventListener called');
} else if (window.attachEvent) {
element.attachEvent('onmousedown', callback);
} else {
element.onmousedown = callback;
}
}
}
}
ezWork('click').on('click', function(e) {
e.preventDefault();
alert('Worked');
});
我只是好奇为什么我得到 .on is not defined(我这样做是根据我认为应该做的方式,而不是如果我知道这是正确的方法,我'我只是想学习,做我想做的向函数添加函数的正确方法是什么?)
非常感谢您的帮助!
我现在得到的错误是,'.on' 没有定义。
最佳答案
var ezWork = (function(win, doc) {
// Constructor
function EzWork(element) {
this.element = this._init(element);
}
EzWork.prototype = {
_init: function(element) {
return doc.getElementById(element);
},
on: function(event, callback) {
// simplified...
this.element.addEventListener(event, callback);
}
};
// Shortcut to create a new instance without using 'new'
return function(element) {
return new EzWork(element);
};
}(window, document));
ezWork('click').on('click', function(e) {
e.preventDefault();
alert('Worked');
});
关于javascript - 查看如何使用函数和函数,使用原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16007259/