Как использовать дополнительные библиотеки пользовательского интерфейса jQuery, такие как draggable?

В соответствии с документами в jQuery UI Framework использовать библиотеку JUI, такую ​​как sortable, требуется следующий код: JHtml::_('jquery.ui', array('sortable'));

Это, по-видимому, отлично работает, если существует jquery.ui.sortable.js, но нет эквивалентных файлов для других JUI-библиотек, в частности draggable /droppable.

Каков правильный способ использования библиотек JUI, которые не включены в основную установку J3.x?

Решение: С руководством от @lodder, вот шаги, которые я выполнил, чтобы получить полную рабочую библиотеку JUI:

  1. Пошел в JUI Themeroller и создал /загрузил тему и связанные с ней файлы.
  2. Создал папку component/com_XXX/assets/jquery-ui-1.11.0.custom, чтобы содержать тему и библиотеки из загруженного zip.
  3. Добавлен код ниже для моего компонента и «tada» ... все функции /функции JUI доступны.

( Это место не будет таким же без Lodder )

JHtml::_('jquery.framework');
JHtml::_('script', JUri::root() . 'components/com_XXX/assets/jquery-ui-1.11.0.custom/jquery-ui.min.js');
7 голосов | спросил GDP 2 J000000Wednesday14 2014, 18:16:26

1 ответ


1

Чтобы импортировать дополнительные JS-библиотеки, вы должны использовать метод JHtml:

JHtml::_('script', JUri::root() . 'path/to/the/file/script.js');

Есть ссылки нет CDN, которые я знаю для отдельных виджетов jQueryUI, что является позором, иначе вы могли бы это сделать:

JHtml::_('script', '//cdnjs.cloudflare.com/ajax/libs/script.js'); 

Что касается расположения файлов JS, я бы либо создал папку в папке «media», и поместил их туда, либо добавлю их в тот же каталог, что и файлы ядра:

ROOT/media/jui/js

Обновление 1:

Вам не нужно заменять библиотеку JUI. Тот, который вы сейчас видите, - это основная библиотека, которая не содержит никаких виджетов. Виджеты, которые при импорте поступают из отдельных файлов и выполняются с использованием кода, который вы указали в своем вопросе. Чтобы получить виджеты, которые не предоставляются с пакетом Joomla, вы можете сделать так, как я описал в своем ответе, или скомпилировать пакет JUI на официальном сайте и заменить jquery.ui.core.min файл с ним. Затем использование будет импортировать ядро ​​вместе с виджетами, которые вы скомпилировали с помощью.

JHtml::_('jquery.ui');

Тем не менее рекомендуется не

Обновление 2:

Посмотрев документацию, вы также можете добавить свои собственные библиотеки и вызвать их, используя:

JHtml::_('mylibrary.myloader');

Я не уверен, как это работает, поскольку я никогда не пробовал, но это еще одна альтернатива, а также в пользу обновления 1.

ответил Lodder 2 J000000Wednesday14 2014, 18:28:37

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

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

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