2010-07-11 4 views
3

jquery 양식 플러그인을 사용하려는 북마크릿을 작성 중입니다.jquery forms 플러그인 noConflict 문제

내가 겪고있는 문제는 북마크릿을 사용할 웹 페이지가 이미 '$'를 사용하는 다른 js 라이브러리를 사용하고있을 수 있다는 것입니다. 아무런 문제가 없지만 noConflict()를 사용하도록 jQuery에 지시 할 수 있습니다.

그러나 jQuery의 양식 플러그인은 제어 할 수없는 '$'도 사용합니다. 이 플러그인에서 $를 사용하지 않고 jQuery를 사용하도록 지정하는 방법이 있습니까?

자세한 내용은 ..

TNI에서 알 수 있듯이

, 나는이 문제를 오해 될 수 있습니다. 여기

는 여기에 내가 (이미로드 JQuery와) ....

var scriptElem = docEl.createElement('script'); 
scriptElem.setAttribute('src',"http://localhost:81/p/a2b/jquery.form.js"); 
scriptElem.setAttribute('type','text/javascript'); 
document.getElementsByTagName('head')[0].appendChild(scriptElem); 

다음

jQuery(docEl).ready(function() { 
    jQuery('#a2b_cart').ajaxForm(function() { alert (" yo");}); 
을 할 것입니다 내가 사파리 5를 사용하고

을 할 것입니다

}}; 나는 자바 스크립트 콘솔에 표시되는 내용

는 :

Form Plugin
jQuery("#a2b_cart").ajaxForm is not a function 
+0

스크립트의'docEl'과'document'의 차이점은 무엇입니까? 'docEl'을 사용하여 요소를 만들고 'document'에 추가하십시오. 그들은 평등하지 않습니까? –

답변

2

가능성이 높습니다. 양식을 초기화하는 코드는 script 요소를 추가 한 직후에로드되기 전에 호출됩니다. jQuery를 이미로드되어 있기 때문에, getScript를 통해 양식 파일을 호출 : 스크립트 파일이로드되면

jQuery.getScript("http://localhost:81/p/a2b/jquery.form.js", function() { 
    jQuery('#a2b_cart').ajaxForm(function() { alert("yo"); }); 

    // Rest of your code here, or call out to another function 
}); 

// Don't place code here, form.js hasn't loaded yet. 

콜백 기능은 실행됩니다.

+0

감사합니다. Doug (및 TNi). 그게 문제 였어. –

2

jQuery.noConflict()를 호출하기와 충돌하지 않고 자신의 코드 내에서 로컬 $를 사용할 수 있도록하는 기술을 사용합니다.

플러그인에서 처리하도록 설문지를 설정하는 경우 대신 jQuery을 사용하면됩니다. 문제가 지속되면 도움을주기 위해 특정 코드를 확인해야합니다.

+0

TNi, 응답 해 주셔서 감사합니다. 나는 세부 사항을 추가했다. 내가 제공 한 정보에 따라 다른 문제가 발생할 수 있습니다. –