Подтвердить что ты не робот

Использование JQuery в Drupal 7

Я пишу свой собственный модуль Drupal 7 и люблю использовать JQuery в нем.

$('#field').toggle();

Но я получаю эту ошибку:

TypeError: Property '$' of object [object DOMWindow] is not a function

Кажется, что JQuery не загружен. В противном случае следует определить $.

Хотя я действительно включаю его в заголовок:

<script type="text/javascript" src="http://rockfinder.de/misc/jquery.js?v=1.4.4"></script>

Нужно ли мне что-то делать, чтобы активировать JQuery в Drupal? Переписывается ли $Drupal?

Что веб-сайт: http://rockfinder.orgapage.de

4b9b3361

Ответ 1

Из руководства по обновлению Drupal 7:

Javascript должен быть совместим с другими библиотеками, чем jQuery добавление небольшой обертки вокруг вашего существующий код:

(function ($) {
  // Original JavaScript code.
})(jQuery);

$global больше не будет ссылаться на объект jquery. Однако при этом построение, локальная переменная $будет ссылаться на jquery, код для доступа к jQuery через $во всяком случае, пока код не будет конфликт с другими библиотеками, которые используют $global.

Вы также можете просто использовать переменную 'jQuery' вместо переменной $в вашем коде.

Ответ 2

В соответствии с Firebug загружается файл jQuery:

alt text

Но $ переписывается чем-то другим:

alt text


Что вам нужно сделать, это инкапсулировать использование переменной $ с помощью функции, которая вызывает себя с использованием объекта jQuery в качестве первого фактического аргумента:

(function ($) {

 // in this function, you can use the $ which refers to the jQuery object

}(jQuery));

Ответ 3

Скорее всего, ваш script не инициализирован таким образом, вам придется использовать Drupal.behaviors.YOURTHEMENAME

(function ($) {
Drupal.behaviors.YOURTHEMENAME = {
attach: function(context, settings) {

/*Add your js code here*/
alert('Code');

}

};
})(jQuery);    

Ответ 4

"$ is not a function" - очень распространенная ошибка, с которой вы можете столкнуться при работе с jQuery. Вы можете попробовать любые ответы ниже:

(function($){
//your can write your code here with $ prefix
})(jQuery);

ИЛИ

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

В основном это позволит запустить наш код и использовать ярлык $для JQuery.