Почему этот jQuery не будет включать работу?

#jquery #window #lightbox #modal-dialog

#jquery #окно #лайтбокс #модальный диалог

Вопрос:

У меня есть модальное окно, из которого я вызываю лайтбокс для просмотра изображений. Я заставил лайтбокс работать самостоятельно, но не могу заставить его работать из модального окна.

Если я включу jQuery до включения лайтбокса — страница прервется, и все настройки портлета завершатся ошибкой.

С благодарностью за любую помощь, Рич.

Проект: http://djrb.co.uk/lightbox/tester.html

Рабочий пример лайтбокса:http://djrb.co.uk/lightbox/working_example.html

Ответ №1:

Похоже, вы включаете как jQuery, так и Prototype. Поскольку они оба переопределяют $, вам нужно выполнить специальную обработку и иметь следующую строку после загрузки jQuery

   jQuery.noConflict();
  

Смотрите эту ссылку для получения более подробной информации.

Комментарии:

1. спасибо за ваш ответ. Я только что добавил этот код, и пример все еще работает, в то время как файл tester — нет. Я повторно загрузил. Еще раз спасибо, Рич

2. Исправлено! Прочитайте документацию по вашей ссылке и замените $ на jQuery. Спасибо!

Ответ №2:

У вас уже есть другие библиотеки JS. Доступ к этим библиотекам осуществляется через $, так же, как и в jquery. Если вам нужно использовать несколько библиотек, используйте jquery в бесконфликтном режиме.

 <html>
 <head>
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script>
     jQuery.noConflict();

     // Use jQuery via jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide();
     });

     // Use Prototype with $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>
  

Комментарии:

1. Эй, ребята, спасибо за вашу помощь. Похоже, это проблема, но я не понимаю, что поместить в строки jQuery («div»).hide(); или $ (‘someid’).hide()? Спасибо, Рич

2. @Richard — Джефф просто приводил пример некоторого кода jQuery.