在开始之前,我想说明一下,我不想以任何方式修改jQuery库,我只想$用返回jQuery实例的自定义函数替换global的值。换句话说,我希望$全局不等于jQuery,并在完成其他(非jQuery)操作后返回jQuery实例。如何在不破坏或修改jQuery库的情况下做到这一点?例如,更改$函数,使其使用常规函数声明在返回jQuery实例之前将每个选择器记录到控制台,如下所示:function $(selector) { console.log(selector); return jQuery(selector);}导致大量错误,例如x is undefined或y is used out of scope引发错误。经过一些研究后,我尝试$.noConflict(true)在console.log函数调用之后放置一个,如下所示:function $(selector) { console.log(selector); $.noConflict(); return jQuery(selector);}我得到的错误比以前少了,但仍然无法按预期工作。为了使我的代码正常工作,我需要更改什么?
3 回答
GCT1015
TA贡献1827条经验 获得超4个赞
您可以通过创建对原始值的引用,然后在以后使用的方式来做到这一点,就像这样...
var _$ = $;
function $(selector) {
console.log(selector);
return _$(selector);
}
如果您想稍后将所有内容恢复到正常状态,则可以像这样重新引用存储的值...
$ = _$;
注意:下划线只是我的命名约定。您可以根据需要调用引用变量。
添加回答
举报
0/150
提交
取消