它看起来有点像你错过的不仅仅是 jQuery 的点击功能。您还会错过 jquery 的选择器引擎、链接和跨对象集合的自动迭代。通过更多的努力,您也可以最少地复制其中一些内容。
var myClickCapture = function (selector) {
var method, name,iterator;
if(selector.substr(0,1) === "#") {
method = "getElementById";
name = selector.substr(1);
iterator = function(fn) { fn(document[method](name)); };
} else {
method = "getElementsByTagName";
name = selector;
iterator = function(fn) {
var i,c = document[method](name);
for(i=0;i<c.length;i++){
fn(c[i]);
};
};
myClickCapture.click = function (fn){
iterator(function(e){
e.onclick=fn;
})
}
return myClickCapture;
}
我还没有测试过代码,但从理论上讲,它会让你得到这样的结果:
myClickCapture("x").click(function(e){ alert("element clicked") });
希望这能让您了解 jquery 在幕后所做的各种事情。