function $(id)js与jquery发生冲突的解决方法

现在有很多个人站长在网上找到各种网页特效,JS的、Jquery的等等有时一个网页使用多个特效时会出现冲突,但是有些人理不出头绪到底哪里出现冲突或者是很多站长不是专业出身或者技术偏薄弱。

所以一种处理方法是换一种特效,当然另一种就是解决冲突保留自己好不容易找到的完美的符合心意的特效效果,下面是我遇到的问题,希望能帮到各位。

 

?[Copy to clipboard] View Code JAVASCRIPT
function $(id){ return document.getElementById(id); }
?[Copy to clipboard] View Code JAVASCRIPT
var $ = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};

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

?[Copy to clipboard] View Code JAVASCRIPT
function c$(o){return document.createElement(o);}

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

该JS的安全写法有:
?[Copy to clipboard] View Code JAVASCRIPT
var $id = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};

?[Copy to clipboard] View Code JAVASCRIPT
var $id = function (id) {
	//避免与jQuery的$函数冲突  
    return typeof id == "string" ? document.getElementById(id) : id;  
};

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

?[Copy to clipboard] View Code JAVASCRIPT
function $(id){ return document.getElementById(id); }
这段代码更换成以下代码即可。
?[Copy to clipboard] View Code JAVASCRIPT
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;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值