북마크릿을 만들고 물론 jQuery를 사용하고 싶습니다. 하지만 jQuery를 추가하면 (사이트에 스크립트 태그 추가) 사이트에 다른 js가있을 경우 사이트 자체가 더 이상 작동합니까?북마크릿을 통해 jQuery를 포함하면 사이트의 원래 자바 스크립트가 망가질 수 있습니까?
마르티 이네
북마크릿을 만들고 물론 jQuery를 사용하고 싶습니다. 하지만 jQuery를 추가하면 (사이트에 스크립트 태그 추가) 사이트에 다른 js가있을 경우 사이트 자체가 더 이상 작동합니까?북마크릿을 통해 jQuery를 포함하면 사이트의 원래 자바 스크립트가 망가질 수 있습니까?
마르티 이네
가 깰 것인가? .... 어쩌면 :
이 일어날 것이라고 내 머리 위로 떨어져이 정말 일반적인 이유가 있습니다. 그들은 그것이 주된 목적이기 위해 다음 충돌을받을거야 $
를 사용하는 다른 라이브러리를 사용하는 경우,이 그러나이 같은 jQuery.noConflict()
에 확인할 수 있습니다 :
var $j = jQuery.noConflict(); //give `$` back to whatever had it...
$j("selector").doSomething(); //use the $j you assigned or jQuery from now on
는 다른 하나는 이미 jQuery를가로드 될 것이다 (아마도 다른 버전 일 수도 있습니다). 스크립트를로드하기 전에 난 그냥이처럼 jQuery
객체 테스트를 추가합니다 :
if (typeof jQuery == 'undefined') { //load jQuery }
//jQuery has been loaded, either by your or originally, keep going...
이미로드에 대한이 솔루션은 jQuery를의 이전 버전이 있다면, 당신은 단지 기능을 가지고 있습니다, 하나주의를 가지고 그 버전의. 페이지에 이전 버전과 새로운 버전을로드하고 별난 행동을 많이하지 않는 방법을 알지 못합니다. 단지 그렇게하도록 설계되지 않았습니다. 또한
, 내가 jQuery를 이미로드되어있는 경우에이 두 작업 차선책을 결합 것이며 이처럼 $
입니다 :이 약
if (typeof jQuery == 'undefined') {
var used = typeof $ != 'undefined';
//load jQuery
if(used) jQuery.noConflict();
}
window.$j = jQuery;
//always use $j in your script, it'll always be present.
무엇입니까? $ (문서) .ready (함수() {// 여기에 $ (선택기)와 같은 것들} –
Btw, 좋은 답변 주셔서 감사합니다! :) –
@Martti - 코드를 래핑 할 수 있습니다. $() * /}를 사용하는 다른 물건들 (jQuery) : $() * /}을 사용하는 다른 물건들 ($ function() {/ * document.ready stuff * /}) ; ' –