Я просто делаю репост, чтобы прояснить это, и потому что я загрузил образец проблемы ...
Просто...
Этот модный плагин коробки отлично работает на этой странице http://www.websitesbyshane.co.uk /chris/portfolio.php
Но НЕ, если портфель #content загружен в index.php через ajax. Вы можете убедиться в этом сами, перейдя на домашнюю страницу здесь www.websitesbyshane.co.uk/chris и нажав «портфолио»
Спасибо за ваше время, ребята.
Шейн
2 ответа
Похоже, ваш вызов ajax загружает всю страницу портфолио .php. Разрешить пользователю щелкнуть ссылку и перейти на страницу портфолио, если у него не включен Javascript, - это отличная вещь, но загрузка всей этой страницы через вызов ajax обязательно вызовет некоторые проблемы.
Страница портфолио.php, которую вы загружаете через ajax, включает $ (document) .ready для включения лайтбокса, но этот код никогда не будет выполняться, поскольку главная страница уже загружена. Ваш код для вашего модного плагина коробки должен быть на главной веб-странице. Затем вы можете запустить этот код, чтобы привязать причудливую коробку после того, как вы загрузили страницу / контент портфолио в свой div.
Изменить: добавлено больше деталей:
У вас сейчас есть
$('#content').load(toLoad)
В вашем файле js.js. согласно документации jQuery api (http://api.jquery.com/load/) вы может передать ему обратный вызов для запуска, когда он закончится:
$('#content').load(toLoad, function() {
alert('Load was performed.');
});
Вы можете просто загрузить свой модный код коробки в эту функцию обратного вызова в файле js.js следующим образом:
$('#content').load(toLoad, function() {
$("a#example6").fancybox({
'titlePosition' : 'over'
});
$("a[rel=example_group]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'titlePosition' : 'over',
'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
}
});
});
Проблема в том, что он будет вызван, даже если вы не вызываете страницу портфолио. Он не будет жаловаться, но это легко решить, заключив его в оператор «if».
Вы используете firebug? это может помочь отладить ваш код php / ajax вживую. Только не забудьте включить отладку javascript и смотреть на вкладке ответов ajax при выдаче XMLHttpRequests для отладки.
Похожие вопросы
Новые вопросы
ajax
AJAX (асинхронный JavaScript и XML) — это метод создания интерактивных пользовательских интерфейсов веб-сайтов без традиционного обновления или перезагрузки веб-страницы. Он использует асинхронный обмен данными между клиентом и сервером, чтобы обновлять отображаемую информацию и беспрепятственно реагировать на взаимодействие с пользователем. Включите дополнительные теги для языков программирования, библиотек, фреймворков, веб-браузеров, протоколов и другой информации об окружающей среде.