иерархический дизайн меню jquery
-
03-07-2019 - |
Вопрос
Редактировать: хорошо, линия:
$( <?php echo("'#".$_GET['item']."'") ?> ).parent().show();
Очевидно, и попытайтесь сохранить меню открытым в нужном месте.Я не думаю, что это когда-либо работало (потому что я ненавижу работать над другим кодом ppls).
Тогда моя текущая проблема заключается в том, как получить доступ к <ul class="myul">
непосредственно над <li id="001" >
используя этот идентификатор элемента = 001 ??
Привет
Я пытаюсь исправить фрагмент кода, оставленный мне ныне потерянным программистом.Это работает, но в нем отсутствует одна функция;I не остается открытым в нужном месте при выборе пункта меню.
Jquery - Jquery - запрос:
$.swapImage(".swapImage");
$( <?php echo("'#".$_GET['item']."'") ?> ).parent().show();
$('.myul').hide();
$('.slide_ul li:not(:first-child)').hide();
$('.hideMe').click(function(){
$(this).next('ul').slideToggle('fast').siblings('ul:visible').slideUp('fast');
});
$('.myul a').click(function(e){
var url = $(this).attr('href');
var index = url.indexOf('=');
var substr = url.slice(index+1);
$('#productContainer >div').hide();
$('#productContainer').load("products/"+substr+"/product.html", function(){
$(this).fadeIn('slow');
var i = 0;
$('.slide_ul li:not(:first-child)').hide();
});
});
HTML:
<!-- Right Navigation -->
<div id="rightNav">
<div id="navMenu">
<h2 id="navMenuheader">Catalogue</h1>
<h3 class="hideMe">Widgets</h3>
<ul class="myul">
<h4 class="hideMe">Widget Coins</h2>
<ul class="myul">
<li id="001" >
<a href="products.php?item=001">The South African Widget</a>
</li>
Результатом нажатия на меню является ввод содержимого в черный div в середине страницы.Делает $(document).ready(function(){
происходит каждый раз, когда это происходит?В противном случае я не понимаю, почему обновляются все позиции меню.
Я предполагаю, что мне нужно еще немного кода, чтобы определить место в меню, в котором мы находимся, и оставить их открытыми.У меня на столе муравьи.
Решение 2
Просто пришлось добавить немного jquery, чтобы снова открыть соответствующий раздел меню после того, как все это было скрыто.Итак, сразу после строки $('.myul').hide()
Я снова открываю раздел меню на основе URL-запроса ( products.php?item=001 ).:
var item = <?php echo("'".$_GET['item']."'") ?>;
if (item != '')
{
item = "li#" + item;
$(item).parent().show();
$(item).parent().parent().show();
}
Другие советы
мне кажется, что плохой закрывающий тег на
<h4 class="hideMe">Widget Coins</h2>
это ваша главная проблема, когда на нее нажимают
$(this).next('ul')
не удается найти ul, потому что это дочерний элемент, а не родной брат h4
меняем его на
<h4 class="hideMe">Widget Coins</h4>
заставляет это работать лучше, не уверен, что это было все, что вы искали
$( <?php echo("'ul:has(#".$_GET['item'].")'"); ?> ).show();
откроется каждый ul, у которого есть потомок с указанным идентификатором
просто при использовании .parent() не отображался верхний ul для отображения