Администратор Django - пространство имен jQuery - PullRequest
8 голосов
/ 25 августа 2011

Я пытаюсь использовать некоторые плагины jQuery на моем административном сайте Django.

Администратор Django устанавливает для пространства имен jQuery значение django.jQuery (чтобы избежать конфликтов)

Если я этого не сделаюиметь пространство имен по умолчанию $ для jQuery, плагины не будут работать, не так ли?

Должен ли я сделать что-то вроде

window.$ = django.jQuery

?

Как& где я могу изменить это пространство имен для всего сайта администратора?

Ответы [ 3 ]

12 голосов
/ 31 августа 2011

На самом деле, большинству плагинов требуется наличие jQuery, а не $, а затем самим $, как в ответе dmidz.

Поэтому вставьте

var jQuery = django.jQuery;

перед вашими внешними ссылками. Если вы загружаете несколько сторонних плагинов jQuery, поместите указанную выше строку в тег скрипта, который предшествует плагинам.

См. Также мой вопрос пять месяцев назад Как предоставить $ сторонним внешним плагинам jQuery в Django admin

4 голосов
/ 25 августа 2011

Я предлагаю вам оставить jQuery в пространстве имен django.jQuery, что является хорошей идеей при использовании cms с различными модулями, которые могут конфликтовать.Но вы заключаете свой плагин в такие:

;(function($){
  // here $ is only in this scope and so totally inobrusive
  // plugin code
})(django.jQuery);
2 голосов
/ 25 августа 2011

Кто-то еще имел подобную проблему и использовал функцию deconflict: http://www.lokkju.com/blog/archives/143

Я не уверен, какую версию использует Django, но я думаю, что смысл использования пространства имен django состоит в том, что он может использовать егособственная версия jQuery для своих внутренних операций, но все же позволяющая использовать другую версию для своей работы.

...