如何将全局“ $”的值更改为返回jQuery实例的自定义函数?

在开始之前,我想说明一下,我不想以任何方式修改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);

}

我得到的错误比以前少了,但仍然无法按预期工作。


为了使我的代码正常工作,我需要更改什么?


FFIVE
浏览 139回答 3
3回答

GCT1015

您可以通过创建对原始值的引用,然后在以后使用的方式来做到这一点,就像这样...var _$ = $;function $(selector) {    console.log(selector);    return _$(selector);}如果您想稍后将所有内容恢复到正常状态,则可以像这样重新引用存储的值...$ = _$;注意:下划线只是我的命名约定。您可以根据需要调用引用变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript