Возник конфликт при попытке использовать плагин цикла jquery и плагин lightbox



Я работаю на веб-сайте, который включил плагин цикла jquery. Все это прекрасно работало, пока я не попытался добавить плагин lightbox. Кажется, в элементе есть проблема, которая позволяет работать только последним файлам JS. Любая помощь была бы очень кстати.



Вот код jquery, который я использую в элементе.



<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>

<!-- include Cycle plugin -->
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.2.74.js"></script>
<!-- initialize the slideshow when the DOM is ready -->
<script type="text/javascript">
$(document).ready(function () {
var titles = ['Pentiction Summer Classic', 'Ryan Kesler', 'Trevor Linden'];
$('.slideshow').after('<div id="navigation"><div id="nav"></div></div>').cycle({
fx: 'fade',
timeout: 5000,
pager: '#nav',
pagerAnchorBuilder: function (index) {
return '<a href="#">' + titles[index] + '</a>';
}
});
});
</script>


Это работает без каких-либо проблем.



Вот код лайтбокса в элементе.



<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>


Он также работает в одиночку без каких-либо проблем. Когда я ставлю они вместе, только последний в стихии работает. Первый ломается.



Я проверил консоль ошибок, и это ошибка:



Ошибка: элемент.dispatchEvent-это не функция
Исходный файл: http://localhost:8888/rockymountainsports/rms/web/js/prototype.js
Строка: 3972



Эта ошибка не появляется, когда цикл js отсутствует. Есть идеи?



Спасибо

453   1  

1 ответ:

Я предполагаю, что ошибка связана с тем, что вы используете 2 фреймворка Javascript, jQuery и Prototype.

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

Я бы рассмотрел использование альтернативы jQuery lightbox или использование jQuery в режиме noConflict () . Что-то вроде:

var $j = jQuery.noConflict();

А затем вместо использования $("someelement") использовать $j("somelement");

Но, моя личная рекомендация это бросить один из каркасов и придерживаться только одного.

Comments

    Ничего не найдено.