noConflict
- это просто и только изменение имени, под которым доступна библиотека jQuery.
Это попытка поиграть с другими фреймворками, которые также могут захотеть использовать имя $
, но это все, что он делает .Это не решает никакой другой тип общего конфликта с другими структурами.Например, когда одна структура клонирует, изменяет или удаляет элемент с внутренними маркерами ID в jQuery, могут возникнуть странные ошибки, которые невозможно исправить. по-прежнему очень плохая идея использовать более одного фреймворка на одной странице, когда они настолько обширны и навязчивы, как jQuery.(Особенно jQuery 1.3, который был очень разборчив в том, к каким элементам он прикоснулся.)
Аналогично, два высокоуровневых плагина, которые работают с одними и теми же элементами, с большой вероятностью могут иметь нежелательные поведенческие взаимодействия.Скажем, один плагин привязывает поведение к элементу, но затем другой плагин удаляет этот элемент, чтобы заменить его прогрессивно улучшенной версией.Или один плагин пытается прочитать offsetWidth
элемента, который больше не имеет видимой ширины, потому что другой плагин вызвал hide()
для своего родителя.
Скрипты и плагины могут претендовать на полностью инкапсулированное поведение, которое выможет разбрасываться, не понимая, как они работают, но на самом деле это не так.Если вы связываете два сценария (которые специально не предназначены для совместной работы) с одними и теми же элементами, они могут помешать или потерпеть неудачу.Старайтесь держать элементы, на которые будут воздействовать различные плагины, отдельно друг от друга, чтобы уменьшить этот потенциал.