Как сделать совместимые плагины jQuery без изменения всего кода? - PullRequest
1 голос
/ 09 июля 2011

Обычный способ сохранить jQuery-совместимость с другими средами - переопределить $ -функцию следующим кодом:

jQuery.noConflict();    
jQuery(document).ready(function() {
      jQuery("someelement").dosomething();
    });

или

$j = jQuery.noConflict();    
$j(document).ready(function() {
      $j("someelement").dosomething();
    });

, но есть и способчтобы обеспечить совместимость дополнительных плагинов jquery без изменения целых знаков $ -функций, как указано выше?

Заранее спасибо!

Дэнни

1 Ответ

2 голосов
/ 09 июля 2011

Объект jQuery передается в качестве аргумента обработчику ready, поэтому вы можете сделать:

jQuery.noConflict();    
jQuery(document).ready(function($) {
    $("someelement").dosomething();
});

Относительно плагинов: они все равно должны иметь доступ только к глобальному элементу jQuery, чтобы точно избежать подобных проблем совместимости.

Большинство плагинов определены как

(function($) {
    // plugin code here
}(jQuery));

Если нет, значит, они плохо спроектированы. Если у вас есть такой плагин, вы должны написать его автору, чтобы исправить. Вам нужно изменить исходный код и обернуть весь код внутри этой функции, чтобы она работала.

...