jQuery 를 불 러 온 후$충돌 해결 방법

4052 단어 jQuery충돌 하 다.
사이트 개발 중인 javasript 부분 은 현재 개발 자 들 이 다 시 는 수 동 으로 document.getElement ById()를 쓰 는 경 우 는 드 물 지 요?그럼 피곤 해 죽 겠 어 요.말 도 마 세 요.getElement ById 는 정말 쓰기 힘 들 어 요.알파벳 도 많 고 대소 문자 도 구분 해서 조심 하지 않 아 잘못 썼어 요.따라서 document.getElemetnById()를$로 구현 하 는 것 은 흔 하 다
 
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
마이크로소프트 asp.net ajax 클 라 이언 트 프레임 워 크 에 도$get 으로 이 루어 진 코드 가 있 습 니 다
 
var $get = Sys.UI.DomElement.getElementById = function Sys$UI$DomElement$getElementById(id, element) {
/// <param name="id" type="String"></param> 4.5.
/// <param name="element" domElement="true" optional="true" mayBeNull="true"></param> 6.7.
/// <returns domElement="true" mayBeNull="true"></returns> 8.9.
var e = Function._validateParams(arguments, [
{name: "id", type: String},
{name: "element", mayBeNull: true, domElement: true, optional: true}
]);
if (e) throw e;
if (!element) return document.getElementById(id);
. if (element.getElementById) return element.getElementById(id);
// Implementation for browsers that don't have getElementById on elements: 28.29.
var nodeQueue = [];
var childNodes = element.childNodes;
for (var i = 0; i < childNodes.length; i++) {
var node = childNodes[i];
if (node.nodeType == 1) {
nodeQueue[nodeQueue.length] = node;
}
}
while (nodeQueue.length) {
node = nodeQueue.shift();
if (node.id == id) {
return node;
}
childNodes = node.childNodes;
for (i = 0; i < childNodes.length; i++) {
node = childNodes[i];
if (node.nodeType == 1) {
nodeQueue[nodeQueue.length] = node;
}
}
}
return null;
}
jQuery 의 심 플 하고 아름 답 기 때문에 더욱 중요 한 것 은 마이크로소프트 에 의 해 널리 보급 되 었 기 때문에 프로젝트 에 jQuery 를 도입 하면 자 연 스 럽 고 필연 적 이다.jQuery 는$함수 로 jQuery 대상,즉$=jQuery 를 되 돌려 주 었 다.jQuery 를 도입 한 후에$기호 문제 에 대해 반드시 충돌 이 발생 하기 때문에 주로 두 가지 방향 으로 해결 했다.1.jQuery.noConfict()를 이용 하여$$는 jQuery 와 같 고 코드 는$$=jQuery.noConflict()입 니 다.이렇게 하려 면 몇 가지 일 을 해 야 합 니 다.1.jQuery 및 jQuery 기반 자바 sript 코드 파일 에 마지막 으로$$=jQuery.noConflict(),jQuery 의 VS 스마트 알림 파일(jQuery XXX Cvsdoc.js)도 마지막 window.jQuery=window.$=jQuery;window.jQuery=window.$=jQuery 로 변경 하기;됐어.2.jQuery 기반 플러그 인과 확장 파일 의 맨 앞 에$=jQuery.noConflict()를 추가 합 니 다.맨 뒤에$=jQuery.noConflict()를 추가 합 니 다.3.기 존의$구현 파일 중 맨 위 에 jQuery.noConflict()를 더 하면$의'권력'을 다른 우리 자신의 js 파일 에 건 네 주 고 파일 맨 뒤에$=jQuery.noConflict()를 추가 합 니 다.4.페이지 가 js 를 도입 할 때 순 서 를 주의 하고 jQuery 의 관련 파일 은 앞 에 놓 고 jQuery 와 관련 이 없 는 파일 은 뒤에 놓 습 니 다.이렇게 한 후에 도$는 예전 의 의 미 를 나타 내 고 jQuery 를 사용 하면 jQuery 나$를 직접 사용 하면 됩 니 다.장점:몇 개의 파일 만 고치 면 목적 을 달성 할 수 있다.단점:$$사용 이 원활 하지 않 습 니 다.나중에 jQuery 플러그 인 을 도입 할 때 2 단계 로 한 번 조작 해 야 합 니 다.2.기 존의$를 교체 합 니 다.고려 한 후에 제 가 사용 하 는 두 번 째 방법 은 jQuery 가 앞으로 프로젝트 에서 광범 위 하 게 사 용 될 것 입 니 다.$또는 jQuery 를 사용 하여 코드 를 쓰 는 것 은 어색 하기 때 문 입 니 다.asp.net ajax 의 호환성 을 고려 하여 기 존$get 으로 대체 합 니 다.Visual Studio 로 교체 하 는 것 도 어렵 지 않 지만 절차 가 필요 합 니 다.1.먼저$get("$(")을 바 꾸 고$get("$(")을 바 꾸 고 마지막 으로$get 을$로 바 꿉 니 다.2.교체 할 때 VSS 의 서명 알림 기능 을 이용 하여 하나의 파일 을 확인 합 니 다(오류 가 발생 하면 작은 일이 아 닙 니 다).결국 작은 문제 가 생 겨 동료의 협조 로 거의 해결 되 었 다.3.Visual Studio 의 교체 기능 은 정말 소매 속 에 건곤 이 있 습 니 다.다음 과 같은 Replace in Files 물건 이 정말 많 습 니 다Use 그 체크 위 에 Regular expressions 를 선택 하지 마 십시오.오른쪽 에$가 End of Line 을 표시 하기 때 문 입 니 다.Look In 그 건 당연히 Current Project 를 선택 합 니 다.물론 오른쪽 단 추 를 누 른 후에 여러 개의 디 렉 터 리 를 선택 하여 반문 을 할 수 있 습 니 다.이것 은 예전 에 전혀 사용 하지 않 았 던 것 입 니 다.Look at these file types 는 특수 한 파일 형식 을 선택 하여 범 위 를 좁 힐 수 있 습 니 다.

좋은 웹페이지 즐겨찾기