解决部分 mootoos1.12 和 jQuery1.3.2 冲突

1.现加载jQuery, 后加载mootools
2. $ 函数冲突
因为js支持函数重载, 并且执行最后加载的同名函数, 所以调用$函数时, 是按照加载 mootools 和 jQuery 的先后顺序的方式加载调用(执行后加载的$), 但是jQuery 中 window.$ = window.jQuery, 所以, 把所有用jQuery加载dom对象时,用jQuery('#')的方式.然后在jQuery中, 把所有的 window.$ = window.jQuery 去掉, 这样window.$就是mootools中的函数了
3.elements 冲突
在mootools中 $$ 函数的作用是去掉所指定dom对象的数组. 而在jQuery中,把所有的元素都写成了 el[0] = el, 所以在 调用mootools的 $$ 函数就会出错, 解放方法是在$$函数中还原回去,
把下面的函数
Elements.Multi = function(property) {
    return function() {
        var args = arguments;
        var items = [];
        var elements = true;
        for (var i = 0, j = this.length, returns; i < j; i++) {
            returns = this[i][property].apply(this[i], args);
            if ($type(returns) != 'element') elements = false;
            items.push(returns);
        };
        return (elements) ? $$.unique(items) : items;
    };
};
改成:
Elements.Multi = function(property) {
    return function() {
        var args = arguments;
        var items = [];
        var elements = true;
        for (var i = 0, j = this.length, returns; i < j; i++) {
			if( $type(this[i]) != 'element' ){
				this[i] = this[i][0];
			}
			
            returns = this[i][property].apply(this[i], args);
            if ($type(returns) != 'element') elements = false;
            items.push(returns);
        };
        return (elements) ? $$.unique(items) : items;
    };
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值