Пользовательское расширение jQuery не будет работать с Drupal - PullRequest
1 голос
/ 09 июля 2011

Пытаясь связать собственное расширение jQuery с Drupal 7, я столкнулся с проблемой с объектом this в моем скрипте.

Мой код упакован должным образом, чтобы не допускать конфликтов, и отлично работает за пределами drupal, но идентичный код на странице drupal не работает.

Я добавил console.log (this) в начало моего расширения и обнаружил, что вне drupal я получаю правильный объект jQuery с соответствующим узлом внутри. Внутри друпала я получаю только соответствующий элемент.

В Drupal 7 есть jQuery 1.4.4, и мой код прекрасно работает в jQuery 1.4.2 и 1.6.2.

Что я могу с этим сделать?

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Не видя ваш код, трудно дать вам отличный ответ.Некоторое время назад я столкнулся с похожей (звучащей) проблемой и использовал эту технику для обтекания встроенного JQuery на сайте Drupal 7, и это решило мою проблему:

(function($) {
    $(document).ready(function(){

        // Insert your code here.

    });
})(jQuery);

Проблема в том, что Drupal 7 строгопространство имен и не допускает значение по умолчанию $ как псевдоним функции, как вы могли бы сделать в Drupal 6.

0 голосов
/ 30 января 2012

Другой метод в Drupal - это обернуть jQuery в это:

jQuery(document).ready(function($) {
  // Insert code here.
});
...