2013-11-28 1 views
0

저는 최근에 누군가로부터 코드를 가져 왔고 전에는 본 적이 없었던 문제 (더 많은 성가심)가 있습니다. 또한 연구하기가 어렵습니다.

기본적으로이 사람은 컨트롤을 선택하기 위해 jQuery를 사용했지만 속기는 $ 버전이 아닙니다. 예를 들어

jQuery("#controlid").val(); 

$("#controlid").val(); 

후자의 휴식 내가 $ 속기를 사용하여 만드는 모든 jQuery를 스크립트 대신에 사용된다.

이전에 이와 같은 경험이있는 사람이 있습니까? 이 귀찮음이 사라지기 위해 내가 바꿔야 할 작은 것이 있을까요?

미리 감사드립니다.

+0

$가 정의되어 있지 않으면 스크립트가 '깨지는'경우 어떤 종류의 오류 메시지가 나타나면 jQuery를 할당 할 수 있습니다 : $ = jQuery – MoYapro

+0

'var $ = jQuery'가 문제를 해결하지 않았습니까? – irla

+0

이것을 코드에 넣으십시오. $ .noConflict(); –

답변

2

솔루션 # 1 : jQuery.noConflict()

Many JavaScript libraries use $ as a function or variable name, just as jQuery does. In jQuery's case, $ is just an alias for jQuery, so all functionality is available without using $. If you need to use another JavaScript library alongside jQuery, return control of $ back to the other library with a call to $.noConflict(). Old references of $ are saved during jQuery initialization; noConflict() simply restores them.

$.noConflict(); 
// Code that uses other library's $ can follow here, not jQuery 

솔루션 # 2 : 스크립트가 jQuery를 한 후로드되어 있기 때문에 $ 별칭

// Option #1, Document Ready Event 
jQuery(function($) { 
    // Code that uses jQuery's $ can follow here. 
}); 

// Option #2, Anonymous Invocation 
(function($) { 
    $(function() { 
     // More code using $ as alias to jQuery 
    }); 
})(jQuery); 

이 그 사용 이유는 확실히됩니다 $을 자체 별칭으로 사용하면 더 이상 jQuery에 속하지 않게됩니다.

+0

문제가되는 스크립트를 찾아서 왜 $의 제어를 가정하고이를 해결하려고하는지보십시오. 나는 내가 만든 모든 새로운 스크립트 위에'var $ = jQuery' 또는'$ .noConflict();'를 넣는 해킹을 고려할 수 있다고 생각한다. – Ebbs

+0

필자가 전에 작성한 코드를 가져간 사람 중 한 명이 스크립트의 맨 위에'$ .noConflict();'를 주석 처리해야했습니다. 도와 줘서 고마워, 정말 고마워. :) – Ebbs

+0

그게 우리가 여기있는 이유야. :) –

관련 문제