Drupal 7 & jQuery - знак доллара

18

Если я не планирую использовать какие-либо JS-библиотеки, кроме jQuery, есть ли какая-либо причина, по которой Drupal должен вызывать jQuery.noConflict (), который удаляет $ как псевдоним для jQuery?

Предполагая, что нет необходимости удалять псевдоним $, есть ли способ, которым я могу вернуть его универсально, не всегда заключая в себе мой код jQuery в (function ($) {...})?

maxedison
источник

Ответы:

11

Решение, которое я придумал, заключается в следующем:

Вверху первого файла JS, который я включил в свою пользовательскую тему, я просто поместил следующую строку:

$ = jQuery;

Выполнено :)

maxedison
источник
Лол, спасибо тебе! Я пытался выяснить, почему jQuery был определен, но $не был. Мы должны превратить этот фрагмент в модуль: D
CamelBlues
сделать этоvar $ = jQuery;
commonpike
6

Нет, вы не можете (ну, вы, вероятно, могли бы, но не должны).

Возможно, в какой-то момент ваш модуль будет использоваться в другом проекте на другом сайте, а затем этот сайт будет использовать другую библиотеку JS (помните, что каждый написанный вами модуль drupal автоматически становится GPL, и ваш клиент может использовать его любым удобным для него способом).

Нетрудно добавить эти две строки в каждый файл js :)

Berdir
источник
Я согласен; ради совместимости лучше не использовать $ в качестве псевдонима для jQuery в Drupal и всегда переносить код JavaScript с помощью jQuery с (function($){…}).
kiamlaluno
На этом этапе не составит труда просто найти и заменить, чтобы превратить все $ в jQuery в моем модуле.
Maxedison
@maxedison что происходит, когда вы смешиваете PHP с JavaScript? Использовать знаки доллара в текстовых строках, управляемых JavaScript?
1
Вы полностью проигнорировали то, что спрашивал спрашивающий. Это правильный вопрос и препятствие, особенно при встраивании сторонних плагинов - вам нужно отредактировать все эти файлы, чтобы они работали без $, и вы должны делать это при каждом обновлении. Поиск и замена также не работают с более сложными плагинами, поскольку для них может потребоваться что-то глобальное. Нужно исправить TBH.
красный
Я пытаюсь найти в интернете фразу: «Каждый раз, когда вы используете $ (), Бог убивает котенка». Пожалуйста, подумайте о котятах.
aendrew
0

Это также может быть возможным решением, если вы склонны использовать модули для подобных вопросов.

jQuery доллар

Этот модуль позволяет разработчикам использовать $ для доступа к библиотеке jQuery вместо того, чтобы явно вызывать jQuery или использовать специальные замыкания в Drupal 7. Все, что вам нужно сделать, это включить его.

Sven
источник