function $(id) js与jquery发生冲突的解决技巧 - 电脑技巧 Power By www.hugesky.com
WWW.HUGESKY.COM -- 鸿天科技
function $(id) js与jquery发生冲突的解决技巧


 来源:网络收集    更新日期:2019-10-07

资料收集:HUGESKY.webmaster

当网页中JS、Jquery的代码用多个特效时会出现冲突,以下是解决思路和一点技巧,网络原创参考https://www.iteye.com/blog/wangkunafocusjava-1762757,

 
function $(id){ return document.getElementById(id); }

var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};


$(id)是js document.getElementById(id)的简写,定义了这个方法 以后调用的时候就可以直接用$(id).innnerHTML 或者$(id).innerText
一般的还有

function c$(o){return document.createElement(o);}


这些都是简单的封装。这一类js代码会和与JQuery对象获取函数冲突会与JQuery冲突的,导致JQuery获取不了对象,必须更改其中一方代码

该JS的安全写法有:

var $id = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};


var $id = function (id) {
//避免与jQuery的$函数冲突 
return typeof id == "string" ? document.getElementById(id) : id; 
};


然后进行后续JS代码的更改,假若你不像更改太多,可以把

function $(id){ return document.getElementById(id); }


这段代码更换成以下代码即可。

function $(id) {
if (typeof jQuery == 'undefined' || (typeof id == 'string' && document.getElementById(id))) {
return document.getElementById(id);
} else if (typeof id == 'object' || !/^w*$/.exec(id) ||
/^(body|div|span|a|input|textarea|button|img|ul|li|ol|table|tr|th|td)$/.exec(id)){
return jQuery(id);
}
return null;
}




Powered by HUGESKY CMS 7.1.1.1080918 professional licensed
本文来自: 电脑技巧: www.hugesky.com
本文网址:http://www.hugesky.com/showarticle.php?id=6926

Copyright (c) 2006,2010 hugesky.com Support : http://www.hugesky.com Author : hugesky (QQ:56964883)

WebSite index Generater for HugeSky CMS