어떻게 jQuery와 다른 JS 라이브러리의 충돌을 해결합니까
참고: 기본적으로 jQuery는 $를 자신의 단축키로 사용합니다.
1.jQuery 라이브러리는 다른 라이브러리 다음에 가져옵니다.
다른 라이브러리와 jQuery 라이브러리가 불러오면 언제든지 jQuery를 호출할 수 있습니다.noConflict() 함수를 사용하여 변수 $의 제어권을 다른 JavaScript 라이브러리로 전달합니다.예는 다음과 같습니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> 1</title>
<!-- prototype -->
<script src="lib/prototype.js" type="text/javascript"></script>
<!-- jQuery -->
<script src="../../scripts/jquery.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">Test-prototype( )</p>
<p >Test-jQuery( )</p>
<script type="text/javascript">
jQuery.noConflict(); // $ prototype.js
jQuery(function(){ // jQuery
jQuery("p").click(function(){
alert( jQuery(this).text() );
});
});
$("pp").style.display = 'none'; // prototype.js
</script>
</body>
</html>
그리고 프로그램에서 jQuery () 함수를 jQuery 대상의 제조 공장으로 사용할 수 있습니다.또 다른 선택이 있다.jQuery가 다른 라이브러리와 충돌하지 않지만, 단축키를 사용자 정의하려면 다음과 같이 하십시오.
<script type="text/javascript">
var $j = jQuery.noConflict(); //
$j(function(){ // jQuery
$j("p").click(function(){
alert( $j(this).text() );
});
});
$("pp").style.display = 'none'; // prototype.js
</script>
jq, $J, awesomequery 등 대체 이름을 사용자 정의할 수 있습니다.이 대체 이름을 jQuery에 사용자 정의하지 않으려면 $를 사용하고 다른 라이브러리의 $() 방법을 막론하고 다른 라이브러리와 충돌하고 싶지 않으면 다음 두 가지 해결 방법을 사용할 수 있습니다.
하나:
<script type="text/javascript">
jQuery.noConflict(); // $ prototype.js
jQuery(function($){ // jQuery
$("p").click(function(){ // $
alert( $(this).text() );
});
});
$("pp").style.display = 'none'; // prototype
</script>
둘째:
<script type="text/javascript">
jQuery.noConflict(); // $ prototype.js
(function($){ // $
$(function(){ // $ jQuery
$("p").click(function(){ // $
alert($(this).text());
});
});
})(jQuery); // jQuery
$("pp").style.display = 'none'; // prototype
</script>
최소한의 코드를 바꾸어 전면적인 호환성을 실현할 수 있기 때문에 가장 이상적인 방식이어야 한다.2.jQuery 라이브러리는 다른 라이브러리 이전에 가져오기
만약 jQuery 라이브러리가 다른 라이브러리 이전에 가져왔다면, jQuery를 사용하여 jQuery 작업을 할 수 있습니다. 또한 $() 방법을 다른 라이브러리의 단축키로 사용할 수 있습니다. jQuery.noconflict () 함수를 호출할 필요가 없습니다. 예는 다음과 같습니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> 5</title>
<!-- jQuery -->
<script src="../../scripts/jquery.js" type="text/javascript"></script>
<!-- prototype -->
<script src="lib/prototype.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">Test-prototype( )</p>
<p >Test-jQuery( )</p>
<script type="text/javascript">
jQuery(function(){ // jQuery , "jQuery.noConflict()" 。
jQuery("p").click(function(){
alert( jQuery(this).text() );
});
});
$("pp").style.display = 'none'; // prototype
</script>
</body>
</html>
이러한 방법으로 충돌을 해결하면 프로젝트에서 jQuery를 안심하고 인용할 수 있습니다.이상은 jQuery와 다른 JS 라이브러리의 충돌을 어떻게 해결하는지에 대한 상세한 내용입니다. jQuery JS 라이브러리의 충돌 해결에 관한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ajax 이용시 로컬 파일이 CORS 에러가 되었을 때의 대응초보의 초보로 입문편의 참고서를 보면서 공부하고 있어, Ajax에서 로컬 파일을 호출하려고했지만 CORS 정책 오류로 인해 실패했습니다. 브라우저에서 로컬 파일(html)을 표시한 것뿐. 사용 브라우저는 chrome...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.