У меня есть основной вопрос, но пока я не нашел удовлетворительного ответа. Должен признаться, я действительно не понимал концепцию поведения. Я понял, что он более гибкий как jQuery(document).ready
, потому что его можно уволить несколько раз (например, для ajax-обновлений). Но он не работает всегда как аспект, особенно для работы с несколькими файлами jQuery.Drupal 7 поведение jQuery с несколькими файлами js
Моя конкретная проблема: у меня есть несколько js-файлов, прикрепленных к моему сайту drupal. Некоторые прикреплены к формам, некоторые присоединено через drupal_add_js в модуле, некоторые прикреплены к пользовательскому блоку и т.д. Все файлы выглядят расслоение плотной, как:
(function ($) {
Drupal.behaviors.THEMENAME = {
attach: function(context, settings){
/* CODE */
}
};
}(jQuery));
Все работает, кроме одного JS-файла не на определенных страницах (на большинстве он работает, но не на узловых страницах [структурированных с помощью модуля страницы]).
Но я не совсем уверен, как назвать поведение. Должны ли они иметь одно и то же имя или разные? Когда я изменяю имя (THEMENAME
) и даю уникальные имена (например, соответствующие модули), чем большинство js больше не работают, но тот, который работал только на определенных страницах, теперь работает на каждой странице.
Как это назвать? Различные js не имеют зависимостей, они в основном просто переключаются, показывают, скрывают и css-манипуляции.
Но когда я это делаю, ни один из моих js-файлов не работает, кроме того, который раньше не работал должным образом. Любое объяснение? Файлы, которые теперь больше не работают, в основном включаются в настраиваемый блок через '$ block ['content'] = array ('#attached' => array ('js' => array ('FILE.js',),); или в форме через '$ form ['# attach'] ['js'] [] = array ('type' => 'file', 'data' => '' FILE.js ',); ' – Mika
Другой скрипт js вызвал ошибку (см. Https://www.drupal.org/node/1181562). Спасибо за вашу помощь. Теперь все работает отлично! – Mika