2012-03-07 5 views
1

У меня есть проект, который использует много плагинов. Однако некоторые из них зависят от более старых версий JQuery. Плагин, который я намерен использовать, зависит от JQuery 1.7, поскольку он использует «on» для привязки события.Как я могу заменить вызовы плагинов Jquery, которые используют «on»?

Как я могу изменить плагин так, чтобы он работал с JQuery 1.6? Если я перейду на JQuery 1.7, он сломает другие части моего проекта, которые зависят от плагинов. Или есть лучший способ справиться с этим сценарием?

+0

Если просто быть в состоянии заменить '' on' с bind' в большинстве случаев? '$ .он («нажмите», функция() {}); ' примерно так же, как '$ .bind ('click', function() {});' – Benno

+1

Можете ли вы расширить объект jQuery собственным очень простым методом '.on()', а затем связать событие как обычно? –

+0

Но нормально подключаемый модуль, который работает с jQuery 1.6, должен работать с последней стабильной версией jQuery (т.е. 1.7.1, я думаю). Зависимость от более ранних версий звучит странно – Misam

ответ

0

Ну вы должны смотреть на каждый вызов, чтобы быть уверенным, но вы можете легко заменить on() звонки с delegate() (EXPECIALLY когда on() используется для вновь добавленных элементов

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

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

в основном вы должны переключить первые два аргументы. в противном случае вы можете загрузить JQuery 1.7 только для плагина и использовать $.noConflict(true)

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

Я думаю, что $ jq = $ .noConflict (true); это самый простой способ. –

+0

спасибо, не используется .noConflict before так будет изучать это. – jaffa

0

Начиная с jQuery 1.7, .delegate() был заменен методом .on(). Однако для более ранних версий он остается наиболее эффективным средством использования делегирования событий. Дополнительная информация о привязке событий и делегировании содержится в методе .on().

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

Я бы попытаться изменить старые плагины для работы с 1.7+, хотя. Кажется более полезным.