Silverstripe Userforms Прототип и JQuery конфликты - PullRequest
0 голосов
/ 22 августа 2011

У меня сейчас кошмар с javascript, с которым, надеюсь, кто-то может помочь. Я использую модуль Userforms, к которому я также добавил свой собственный код jQuery, так что значение по умолчанию текстового поля исчезает при щелчке и появляется снова, если теряет фокус и равно нулю.

Я также пытаюсь реализовать слайд-шоу на той же странице. Я не могу использовать jQuery для этого из-за проблем с совместимостью с IE8 (разве вы просто ненавидите Microsoft!). Вместо этого, используя Prototype, я получаю множество случайных ошибок, которые, я могу только догадываться, вызваны тем фактом, что я включаю prototype.js дважды, один раз для слайд-шоу вверху страницы и один раз внизу страница, которая как-то вводится пользовательскими формами. Если я удаляю мое включение сверху, мое слайд-шоу приводит к отсутствующей ошибке библиотеки прототипов.

Я пытаюсь использовать jQuery.NoConflict, чтобы предотвратить проблемы с многократным перехватом токена $, но я только что закончил с беспорядком ошибок и конфликтов JavaScript.

Есть ли способ контролировать, как пользовательские формы используют / включают в себя javascript include (jQuery и прототип)?

Любая помощь или совет будет высоко ценится! Большое спасибо

1 Ответ

0 голосов
/ 23 августа 2011
  • Если вы используете jQuery noConflict правильно, с Prototype проблем быть не должно.
  • Включая Prototype дважды вызывает проблемы.
  • Если ваше слайд-шоу требует, чтобы JS был включен в головку (не рекомендуется по соображениям производительности), вы можете заставить SilverStripe загрузить JS в головку. Включите в функцию init () следующее:

    Requirements::set_write_js_to_body(false);
    
  • Если это не решит вашу проблему, вам нужны две разные версии Prototype? Если это так, я бы либо попытался решить проблемы, либо переключил плагин слайд-шоу - там должно быть множество альтернатив. Включение 3-х библиотек JS на вашу страницу звучит как излишнее перебор - подумайте о времени загрузки ...

...