Сделать глобально доступным с помощью jQuery.noConflict ()

Код продвигает этот метод использования $ внутри файла сценария /темы JavaScript:

jQuery(document).ready(function($) {
    // $() will work as an alias for jQuery() inside of this function
});

Но если вы это сделаете, у вас будет доступ к $ внутри ready (). Я думаю, что функции должны быть разбиты на небольшие модули, которые вызываются из ready (), а не все сгруппированы вместе в ready (), поэтому, если я использую метод Codex, я должен передать $ каждой функции, что является раздражающим и грубым. Записывать jQuery все время, а не просто использовать $ также раздражает.

Я могу просто сделать $ = jQuery.noConflict(); в начале моего файла JavaScript, а затем $ доступен везде, но я подозреваю, что это может вызвать проблемы с другими плагинами /темами в некоторых ситуациях. Мои поиски не получили никаких подробных объяснений или окончательных ответов. У кого-нибудь есть мысли?

6 голосов | спросил Ian Dunn 25 J0000006Europe/Moscow 2011, 11:36:14

2 ответа


9

Вам не нужно $ = jQuery.noConflict();

Просто оберните любые функции вне document.ready () внутри:

(function($){  
  // use $ here safely
})(jQuery);
ответил onetrickpony 25 J0000006Europe/Moscow 2011, 13:27:34
0

надеюсь, что этот ответ может помочь кому-то

введите этот код:

 $ = jQuery.noConflict(true);

до:

 $(document).ready(function($){ ... });
ответил Johnnatan 13 PM000000120000002531 2012, 12:09:25

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132