Я работаю на строго html-сайте для некоммерческой группы. Я хотел бы сделать один html файл и загрузить его через ajax .load()
чтобы упростить будущие обновления. Программа .load()
работает нормально, но выпадающие меню не работают, загружается только родительский уровень. Теперь, если я возьму загружаемую страницу (скопируйте и вставьте) вместо div
, она отлично работает.
Вот меню/страница, загружаемая через ajax:
<div class="navbar navbar_ clearfix">
<div class="navbar-inner">
<div class="nav-collapse nav-collapse_ collapse">
<ul class="nav sf-menu clearfix">
<li class="sub-menu"><a href="/adoptions.htm">Adopt</a>
<ul>
<li><a href="/adopt_a_cat.htm">Adopt a Cat</a></li>
<li><a href="/adopt_a_dog.htm">Adopt a Dog</a></li>
<li><a href="/vips.htm">VIPs</a></li>
</ul>
</li>
<li class="sub-menu"><a href="/donate_help.htm">Donate/Help</a>
<ul>
<li><a href="/make_a_donation.htm">Make A Donation</a></li>
<li><a href="/our_wish_list.htm">Our Wish List</a></li>
<li><a href="/volunteer.htm">Volunteer</a></li>
<li><a href="/virtual_foster.htm">Virtual Foster</a></li>
<li><a href="/be_a_voice.htm">Be A Voice</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
Вот вызов jquery ajax (не получается проще):
$('#topNavBar').load('includes/_topNavBar.htm');
И вот тег div, содержимое которого загружается (если не жестко закодировано):
<div id="topNavBar"></div>
Я действительно устал, отпрыгивая от клавиатуры; html, загруженный через ajax, должен наследовать существующий стиль, но это не так. Я надеюсь, что ответ здесь где-то, и я просто пропустил его.
Я не могу воспроизвести вашу проблему. Поэтому мои предложения для вас
1) убедитесь, что загрузка AJAX() происходит после полной загрузки стилей и элементов HTML:
<html>
<head>
<title>Test</title>
<script src="jquery-2.1.0.min.js"></script>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="topNavBar"></div>
<script type="text/javascript">
$('#topNavBar').load('_topNavBar.html');
</script>
</body>
</html>
или проверьте событие $ (document).ready(), чтобы дождаться загрузки страницы.
2) проверьте, что присвоение соответствующего класса во время выполнения в консоли разработчика по вашему выбору ничего не меняет (например, $ ('# topNavBar> div'). AddClass ("navbar")). Если это не так, вы можете найти свою проблему в своем CSS, например, с помощью программного обеспечения с ошибками.