У меня конфликт в отношении некоторых сценариев jquery в том же заголовке документа, одним из которых является сценарий, динамически вызывающий контент из меню навигации (dynamicpage), а другой - лайтбокс (slimbox2) для моей галереи изображений , (также есть работа хэшхэга для динамической страницы, называемая jquery.ba-hashchange)jquery dynamic content & lightbox conflict
Они оба работают нормально самостоятельно, и нет проблем, чтобы открыть страницу, где галерея находится непосредственно в браузере (here, it работает только с первым изображением, потому что я еще не поместил код на другие), но если я открою страницу из навигации, используя сценарий динамического содержимого, лайтбокс не работает.
Это похоже на содержимое, загружаемое из сценария dynamicpage, так как другой скрипт должен работать внутри этого содержимого.
это dynamicpage:
$(function() {
var newHash = "",
$mainContent = $("#main-content"),
$pageWrap = $("#page-wrap"),
baseHeight = 0,
$el;
$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();
$("nav, #logo, #start, footer").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash) {
$mainContent
.find("#guts")
.fadeOut(200, function() {
$mainContent.hide().load(newHash + " #guts", function() {
$mainContent.fadeIn(200, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
$("nav a").removeClass("current");
$("nav a[href="+newHash+"]").addClass("current");
});
});
};
});
$(window).trigger('hashchange');
});
Вот скрипты, которые загружаются из моего заголовка (в указанном порядке):
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/jquery.ba-hashchange.min.js"></script>
<script type="text/javascript" src="js/dynamicpage.js"></script>
<script type="text/javascript" src="js/slimbox2.js"></script>
Было бы слишком запутанна, чтобы размещать скрипты лайтбокса и сценарий hashchange здесь, но я надеюсь, что это будет сделано. Вот ссылка на сайт (все еще в стадии разработки): http://www.designhofmann.de/test/ Я не треск jquery и нормальный дизайн сайтов, а не их кодирование, поэтому я надеюсь, что вы несете мою неопытность. :) Любая помощь приветствуется, так как я искал часы, чтобы найти решение.
привет, спасибо за быстрый ответ - он действительно работает, но теперь изображение не появляется. Погрузочное колесо продолжает загружаться навсегда, и я не знаю, как это исправить. Я положил функцию прямо перед закрывающими тегами внутри dynamicpage.js, и я даже пробовал разные места. Должен ли я помещать его в другое место или у вас есть какие-либо другие предложения? –
Прежде всего, похоже, что $ (document) был неправильным, посмотрите обновленный ответ, я думаю, вы можете попробовать '$ (« # gallery li a »). Slimbox()' вместо этого. – shanabus
он работает! Спасибо за подсказку! Сначала мне пришлось вызвать unbind, чтобы как-то отбросить старую функцию из элементов DOM, даже если у меня было все удалено (это странно). И затем я поместил новую функцию сразу после функции загрузки $ mainContent.hide(). Таким образом, теперь она может сделать трюк. –