부분 해결 mootoos1.12 및 jQuery 1.3.2 충돌

1563 단어 JavaScript
1. 현재 jQuery를 로드하고 mootools를 로드합니다.
2.$함수 충돌
js는 함수 재부팅을 지원하고, 마지막으로 불러오는 같은 이름의 함수를 실행하기 때문에 $함수를 호출할 때, mootools와 jQuery를 불러오는 선후 순서에 따라 호출을 불러옵니다. (실행 후 불러오는 $) 그러나 jQuery에서 window. $=window.jQuery, 따라서 모든 jQuery로dom 대상을 불러올 때 jQuery ('#') 방식을 사용합니다.그리고 jQuery에서 모든 window.$=window.jQuery 제거, 이렇게 window.$Mootools의 함수입니다.
3. 요소 충돌
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;
    };
};

좋은 웹페이지 즐겨찾기