Як подружити drupal і jquery, amiweb

Що робити, якщо скрипт на jQuery, знайдений вами в інтернеті не працює при його вставці в Drupal. У чому проблема і як її вирішити?

При написанні коду найкраща практика - це обернути свій код в «замикання» (обгортку, хз як назвати). «Замикання» - це не більше ніж функція, яка дозволяє обмежити область дії змінних, щоб випадково не перезаписати глобальних змінних.

// Оголошуємо нову функцію.

# 40; function # 40; # 41; # 123;

// Функції оголошені тут не впливатимуть на задані глобально.

var window = "Whoops, at least I only broke my code." ;

console. log # 40; window # 41; ;

// Додатковий набір дужках каже запустити функцію, яку ми тільки що визначили.

// Наш безглуздий код всередині замикання не впливає на все інше.

console. log # 40; window # 41; ;

Вирішити це можна наприклад ось так

// Ми визначаємо функцію, яка використовує один параметр з ім'ям $.

# 40; function # 40; $ # 41; # 123;

// Використовуємо jQuery з скоращеніем:

// Тут ми відразу викликаємо функцію з JQuery як параметр.

Зверніть увагу, що є два прийнятних синтаксису для закриття: дужка, яка закриває першу дужку може йти як до, так і після (JQuery).

Функція .ready () так само має можливість задавати псевдонім об'єкту jQuery:

jQuery # 40; document # 41 ;. ready # 40; function # 40; $ # 41; # 123;

// Code that uses jQuery's $ can follow here.

В Drupal 7 jQuery.noConflict () викликається, щоб зробити його простіше у використанні інших бібліотек JS, так що вам або доведеться вводити JQuery () або у вас буде замикання перейменовувати його для вас

Але, є ще один універсальний метод, що дозволяє уникнути цих нудних проблем.

Він зробить всю брудну роботу за вас, код буде працювати, якщо його просто скопіювати із прикладів, взятих в інтернеті. Перевірив, все пучком :-)

Схожі статті