900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 加载jQuery后$冲突的解决办法【jquery】

加载jQuery后$冲突的解决办法【jquery】

时间:2020-05-05 23:25:52

相关推荐

加载jQuery后$冲突的解决办法【jquery】

web前端|js教程

jQuery,冲突

web前端-js教程

网站开发中的javasript部分,现在的开发人员很少有再去手工写document.getElementById()的了吧,那还不得累死,你还真别说,getElementById还真不好写,字母还挺多又区分大小写,一不留神就写错了。因此一下诸如用$来实现document.getElemetnById()就常见了。

石器时代源码,vscode标识符高亮失效,ubuntu用cad,tomcat运行本地文件,爬虫京东库存,php zip.so,徐州百度seo优化服务,html网站制作lzw

function $() {

var elements = new Array();

for (var i = 0; i < arguments.length; i++) {

var element = arguments[i];

if (typeof element == string)

element = document.getElementById(element);

if (arguments.length == 1)

return element;

elements.push(element);

}

return elements;

}

微软的 ajax客户端框架也有类似用$get来实现的代码。

火池 任务大厅源码,vscode 启动lua,ubuntu的生态,下载tomcat 源码,小米 查看sqlite,服务器 jsp,jquery 按条件查询插件,python的前端框架,pyquery爬虫教学,朱亚杰php,深圳seo优化好不好,手机原网站,如何美化网页上的按钮,oa模板 html,文件管理页面,海洋影视管理系统教程,易语言启动应用的程序吗lzw

var $get = Sys.UI.DomElement.getElementById = function Sys$UI$DomElement$getElementById(id, element) {

/// 4.5.

/// 6.7.

/// 8.9.

var e = Function._validateParams(arguments, [

{name: "id", type: String},

{name: "element", mayBeNull: true, domElement: true, optional: true}

]);

if (e) throw e;

if (!element) return document.getElementById(id);

. if (element.getElementById) return element.getElementById(id);

// Implementation for browsers that don have getElementById on elements: 28.29.

var nodeQueue = [];

var childNodes = element.childNodes;

for (var i = 0; i < childNodes.length; i++) {

var node = childNodes[i];

if (node.nodeType == 1) {

nodeQueue[nodeQueue.length] = node;

}

}

while (nodeQueue.length) {

node = nodeQueue.shift();

if (node.id == id) {

return node;

}

childNodes = node.childNodes;

for (i = 0; i < childNodes.length; i++) {

node = childNodes[i];

if (node.nodeType == 1) {

nodeQueue[nodeQueue.length] = node;

}

}

}

return null;

}

由于jQuery的简约、优美,更重要的是被微软所大力推广,因此在项目中引入jQuery就显得自然而必然,jQuery采用$函数来返回一个jQuery对象,也就是$=jQuery,引入jQuery后针对$符号问题必然产生冲突,因此主要有2个思路来解决。

A、利用jQuery.noConfict()使得$$等于jQuery,代码为$$=jQuery.noConflict()。这样需要做一下几件事

1、在包含jQuery以及基于jQuery的javasript代码文件中最后加上$$=jQuery.noConflict(),jQuery的VS智能提示文件(jQueryXXX –vsdoc.js)也最后的window.jQuery = window.$ = jQuery;也改成window.jQuery = window.$$ = jQuery;好了。

2、基于jQuery的插件和扩展文件最前面加上$=jQuery.noConflict();最后面加上$$=jQuery.noConflict();。

3、原有的$的实现文件中,最上面加上jQuery.noConflict()表示将$的“权力”交给其他我们自己的js文件,然后文件最后面加上$$=jQuery.noConflict()。

4、页面引入js的时候注意顺序,jQuery的相关文件放前面,与jQuery不相关的文件放后面。

这样做了之后,$还是表示以前的含义,而使用jQuery则直接用jQuery或者$$就可以了。

优点:只需要改几个文件就能达到目的。

缺点:$$使用起来并不顺手,以后引入jQuery插件时都需要按步骤2进行操作一次。

借贷系统源码,vscode怎么退回上一个版本,ubuntu 印象笔记,高版本tomcat无法显示图片,sqlite的运算,焦点型网页设计,服务器中安装网站,微赞 直播插件,优质前端框架,点赞抽奖爬虫,php显示图片代码,谷歌seo关键词工具,html5网站后台模板,注册界面网页源代码,织梦 房地产模板,打开页面动画效果,酒店管理系统c 代码,音乐cms程序lzw

B、将原有的$进行替换,经过考虑后我采用的第二种方法,因为jQuery在以后的项目中将被广泛使用,使用$$或者jQuery来写代码毕竟别扭。考虑到 ajax的兼容性,因此将原有$替换成$get。用Visual Studio来做替换到也不难

,但也还需要一点步骤。

1、首先用$get(“替换掉$(“,然后是用$get(‘替换掉$(‘,最后才是$get替换成$。

2、替换的时候利用VSS的签出提示功能,一个一个文件进行一定的确认(要是出了差错那可不是小事)。最后还是出了一些小问题,在同事的协助下也基本解决了。

3、Visual Studio的替换功能还真是袖里有乾坤,如下的一个Replace in Files东西还真不少。

Use那个勾上上,可千万别选Regular expressions,因为在右边清楚的显示$表示End of Line。Look In那个当然选Current Project,当然右边的按钮按下后可以选多个目录来框定反问,这个倒是以前完全没用过的。Look at these file types可以选定特殊的一些文件类型来缩小范围。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。