2009-10-12 4 views
2

Я просто переместил свой javascript в jQuery для простых функций AJAX. Однако я пытаюсь использовать плагин lightbox с jQuery, так как я хочу сохранить те же функции, но не хочу включать 10 разных библиотек. Если я удаляю jquery include и сохраняю lightbox, он отлично работает , если я верну его обратно, он просто отображает изображение полного размера вместо коробки, ни хром, ни консоль firefox не жалуются ни на что, он просто идет прямо image Я пробовал 5 различных клонов/плагинов для ящиков для jQuery, но все они давали мне такое же поведение, что заставляет меня думать, что мне что-то не хватаетjQuery kills Лайтбокс

прямо сейчас мои заголовки выглядят так (дважды проверены, повторно все есть):

<script type='text/javascript' src='js/jquery.js'></script> 
<script type='text/javascript' src='js/thickbox.js'></script> 
<link rel='stylesheet' type='text/css' href='css/thickbox.css' /> 

и моя галерея (PHP):

foreach(...){ 
echo "<a href=\"$path\" class='thickbox' rel='$folder'><img border=none src=\"$thumb\" /></a>&nbsp;\n" ; 
} 

для фона, изображения в Еогеасп загружаются из вызова Ajax, но это никогда не было проблем с лайтбокса, это не должно быть, потому что все HTML есть в любом случае

+2

ПОЛУЧИТЬ поджигатель http://getfirebug.com/ и инспектировать лайтбоксе и без JQuery добавлены к проекту , Поскольку вы используете php, может возникнуть проблема с '$'. Вы можете попытаться сделать '$ j = jQuery.noConflict()' в верхней части вашего файла сценария. – peirix

ответ

3

Это, как правило, из-за другие библиотеки (а не jQuery) также пытаются использовать имя переменной знака доллара.

В jQuery есть параметр для включения режима совместимости, который заставит вас использовать jQuery() вместо $() для вызова jQuery.

+0

Да, я заменил my $ на jquery для ajax, и он работает ... но только в chrome :( – blackbird

0

Просто мысль ... не пытается ли LightBox включить свою собственную копию jQuery или что-то подобное? IIRC, это может быть причиной ваших проблем ...

+0

Исходный Лайтбокс основан на прототипе, плагин, который я использую, использует jquery. Я попытался удалить свой собственный jquery и уйти это до плагина, не работает, и он разбивает мой ajax – blackbird

0

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

+0

Просто попробовал этот и slimbox тоже. Ни один из них не работал, я думаю, что есть проблема, когда большие пальцы загружаются из ajax, потому что я провел небольшой тест без ajax (с jQuery) и обработанное модальное окно – blackbird

3

Вы также могли бы использовать jQuery Lightbox Plugin

+0

Я буду защищать это, плагин jQuery Lightbox превосходит по порядку оригинал. –

+0

Это тот, с которым я иду. Я нашел решение для дальнейшего использования. Код javascript: $ ('# yourdiv a'). LightBox() не был включен, потому что мой контент был получен через AJAX Способ решения этого вопроса заключается в том, чтобы добавить его в $ (document) .ready() и не забудьте включить соответствующие файлы js на страницу, даже в контент, полученный AJAX, если это новая страница – blackbird