function $(id) js与jquery发生冲突的解决技巧
当网页中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;
}
责任编辑: webmaster >>> 百度上搜索 谷歌上搜索
点击复制本连接 (http://www.hugesky.com/showarticle.php?id=6926)【声明】: 以上文章或资料除注明为电脑技巧原创或编辑整理外,均为网络收集整理或网友推荐。以上内容以共享、参考、研究为目的,不存在任何商业目的。 未注明作者或出处的文章,可能资料来源不规范。如有涉及版权请给予及时联系更正或予以删除。 |