2012-03-07 3 views
1

많은 플러그인을 사용하는 프로젝트가 있습니다. 그러나 일부는 이전 버전의 JQuery에 의존합니다. 사용하려는 플러그인은 이벤트 바인딩을 위해 'on'을 사용하므로 JQuery 1.7에 종속됩니다.'on'을 사용하는 Jquery 플러그인 호출을 대체하려면 어떻게해야합니까?

JQuery 1.6에서 작동하도록 플러그인을 수정하려면 어떻게해야합니까? JQuery 1.7로 업그레이드하면 플러그인에 의존하는 프로젝트의 다른 부분이 손상됩니다. 아니면이 시나리오를 다루는 더 좋은 방법이 있습니까?

+0

단지 대부분의 경우 bind''와 on''대체 할 수할까요?'$ CSTE 연구진() (, 기능을 '클릭' {});은 – Benno

+1

아주 기본적인'.on()'메소드로 jQuery 객체를 확장 한 다음, 평상시처럼 이벤트를 바인드 할 수 있습니까? –

+0

하지만 일반적으로 jQuery 1.6에서 작동하는 플러그인은 jQuery의 최신 안정 버전 (예 : 1.7.1)에서 작동해야합니다. 이전 버전에 대한 종속성이 이상하게 들린다 – Misam

답변

0

그럼 당신은 확인하기 위해 호출 할 때마다보고해야하지만, 당신은 쉽게 기본적으로는 처음 두를 전환해야 on()가 새로 추가 된 요소

.delegate(selector, eventType, handler(eventObject)) 

.on(events [, selector], handler(eventObject)) 

에 사용되는 expecially에 delegate() (와 on() 전화를 대체 할 수 있습니다 인수. 그렇지 않으면 당신은 단지 플러그인 jQuery를 1.7을로드하고 사용할 수 $.noConflict(true)

$jq = $.noConflict(true); 
    //replace all $ in the plugin with $jq 
+0

나는 $ jq = $ .noConflict (true)라고 생각한다; 가장 쉬운 방법입니다. –

+0

감사합니다. 사용하기 전에 .noConflict 이렇게하기 전에. – jaffa

0

jQuery 1.7부터 .delegate()가 .on() 메소드로 대체되었습니다. 그러나 이전 버전에서는 이벤트 위임을 사용하는 것이 가장 효과적인 방법으로 남아 있습니다. 이벤트 바인딩 및 위임에 대한 자세한 내용은 .on() 메서드를 참조하십시오.

http://api.jquery.com/delegate/

그래도 난 1.7+와 함께 작동하도록 기존의 플러그인을 변경하려고합니다. 더 보람이있는 것 같습니다.

관련 문제