我找到嵌套Jquery手风琴的代码并且像魅力一样工作,但是当我点击侧边栏中的菜单或子菜单(重定向到不同网址的链接)时,我发现了一个大问题,然后网站不记得哪个菜单或子菜单应该在刷新后显示或隐藏(默认状态是隐藏除1级别之外的所有内容)。是否有任何选项可以让我的菜单在刷新之前记住最后状态?非常感谢你的帮助。
HTML:
<ul>
<li>
<a href="foo1.php">level 2</a>
<ul>
<li><a href="foo2.php">a</a></li>
<li><a href="foo3.php">b</a></li>
</ul>
</li>
<li>
<a href="foo4.php">level 2</a></li>
<ul>
<li>
<a href="foo5.php">level 3</a>
<ul>
<li><a href="foo6.php">c</a></li>
<li><a href="foo7.php">d</a></li>
</ul>
</li>
<li><a href="foo8.php">e</a></li>
<li><a href="foo9.php">f</a></li>
</ul>
</li>
</ul>
Jquery的:
$('ul li ul').hide();
$('ul li').click(function(ev) {
$(this).find('>ul').slideToggle();
ev.stopPropagation();
});
真实HTML:
<ul class="arrows_list1-1">
<h3>Naše produkty</h3>
<div class="menu-produkty-container">
<ul id="menu-produkty" class="menu">
<li id="menu-item-97" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-has-children menu-item-97">
<a href="http://www.odsavacky.cz/wpccategories/akce/">Akce</a>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-114">
<a href="http://www.odsavacky.cz/wpccategories/akcni-ceny/">Akční ceny</a>
</li>
<li id="menu-item-98" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-98">
<a href="http://www.odsavacky.cz/wpccategories/novinky/">Novinky</a>
</li>
</ul>
</li>
<li id="menu-item-63" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories current-wpccategories-ancestor current-menu-ancestor current-menu-parent current-wpccategories-parent menu-item-has-children menu-item-63">
<a href="http://www.odsavacky.cz/wpccategories/spotrebni-material/">Spotřební materiál</a>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-66" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-has-children menu-item-66">
<a href="http://www.odsavacky.cz/wpccategories/kyslikova-terapie/">Kyslíková terapie</a>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-67" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-67">
<a href="http://www.odsavacky.cz/wpccategories/kyslikove-masky-a-nosni-sondy/">Kyslíkové masky a nosní sondy</a>
</li>
<li id="menu-item-176" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-176">
<a href="http://www.odsavacky.cz/wpccategories/masky-inhalacni/">Masky inhalační</a>
</li>
<li id="menu-item-68" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-68">
<a href="http://www.odsavacky.cz/wpccategories/mikronebulizatory/">Mikronebulizátory</a>
</li>
<li id="menu-item-179" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-179">
<a href="http://www.odsavacky.cz/wpccategories/prutokomery/">Průtokoměry</a>
</li>
<li id="menu-item-180" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-180">
<a href="http://www.odsavacky.cz/wpccategories/redukcni-ventily/">Redukční ventily</a>
</li>
<li id="menu-item-178" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-178">
<a href="http://www.odsavacky.cz/wpccategories/prislusenstvi-k-tep-nebulizatorum/">Příslušenství k tep. nebulizátorům</a>
</li>
<li id="menu-item-175" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-175">
<a href="http://www.odsavacky.cz/wpccategories/kyslikove-zvlhcovace-prislusenstvi/">Kyslíkové zvlhčovače, příslušenství</a>
</li>
<li id="menu-item-181" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-181">
<a href="http://www.odsavacky.cz/wpccategories/studene-nebulizatory-prislusenstvi/">Studené nebulizátory, příslušenství</a>
</li>
</ul>
</li>
<li id="menu-item-73" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-has-children menu-item-73">
<a href="http://www.odsavacky.cz/wpccategories/resuscitace-intubace/">Resuscitace, intubace</a>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-189" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-189">
<a href="http://www.odsavacky.cz/wpccategories/laryngoskopy/">Laryngoskopy</a>
</li>
<li id="menu-item-188" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-188">
<a href="http://www.odsavacky.cz/wpccategories/laryngealni-masky/">Laryngeální masky</a>
</li>
<li id="menu-item-190" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-190">
<a href="http://www.odsavacky.cz/wpccategories/masky-resuscitacni/">Masky resuscitační</a>
</li>
<li id="menu-item-192" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-192">
<a href="http://www.odsavacky.cz/wpccategories/rucni-resuscitatory/">Ruční resuscitátory</a>
</li>
<li id="menu-item-191" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-191">
<a href="http://www.odsavacky.cz/wpccategories/prislusenstvi-defibrilace/">Příslušenství defibrilace</a>
</li>
</ul>
</li>
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-has-children menu-item-71">
<a href="http://www.odsavacky.cz/wpccategories/odsavani/">Odsávání</a>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-182" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-182">
<a href="http://www.odsavacky.cz/wpccategories/odsavaci-cevky/">Odsávací cévky</a>
</li>
<li id="menu-item-183" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-183">
<a href="http://www.odsavacky.cz/wpccategories/odsavaci-hadice/">Odsávací hadice</a>
</li>
<li id="menu-item-184" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-184">
<a href="http://www.odsavacky.cz/wpccategories/odsavaci-lahve/">Odsávací lahve</a>
</li>
<li id="menu-item-185" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-185">
<a href="http://www.odsavacky.cz/wpccategories/odsavaci-vaky/">Odsávací vaky</a>
</li>
<li id="menu-item-186" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-186">
<a href="http://www.odsavacky.cz/wpccategories/saci-filtry/">Sací filtry</a>
</li>
<li id="menu-item-187" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-187">
<a href="http://www.odsavacky.cz/wpccategories/stopventily/">Stopventily</a>
</li>
</ul>
</li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-70">
<a href="http://www.odsavacky.cz/wpccategories/narkotizace-umela-plicni-ventilace/">Narkotizace, umělá plicní ventilace</a>
</li>
<li id="menu-item-64" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories current-menu-item menu-item-64">
<a href="http://www.odsavacky.cz/wpccategories/diagnostika/">Diagnostika</a>
</li>
<li id="menu-item-65" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-65">
<a href="http://www.odsavacky.cz/wpccategories/ekg-prislusenstvi/">EKG – příslušenství</a>
</li>
<li id="menu-item-69" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-69">
<a href="http://www.odsavacky.cz/wpccategories/monitoring-defibrilace/">Monitoring, defibrilace</a>
</li>
<li id="menu-item-72" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-72">
<a href="http://www.odsavacky.cz/wpccategories/operacni-svetla/">Operační světla</a>
</li>
</ul>
</li>
<li id="menu-item-75" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-has-children menu-item-75">
<a href="http://www.odsavacky.cz/wpccategories/zdravotnicke-pristroje/">Zdravotnické přístroje</a>
<ul class="sub-menu" style="display: none;">
<li id="menu-item-76" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-76">
<a href="http://www.odsavacky.cz/wpccategories/kyslikova-terapie-zdravotnicke-pristroje/">Kyslíková terapie</a>
</li>
<li id="menu-item-77" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-77">
<a href="http://www.odsavacky.cz/wpccategories/resuscitace-intubace-zdravotnicke-pristroje/">Resuscitace, intubace</a>
</li>
</ul>
</li>
<li id="menu-item-74" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-74">
<a href="http://www.odsavacky.cz/wpccategories/vyukovy-program/">Výukový program</a>
</li>
<li id="menu-item-62" class="menu-item menu-item-type-taxonomy menu-item-object-wpccategories menu-item-62">
<a href="http://www.odsavacky.cz/wpccategories/nahradni-dily/">Náhradní díly</a>
</li>
</ul>
</div>
</ul>
Real Jquery:
$('.arrows_list1-1 li ul').hide();
$('.arrows_list1-1 li').click(function(ev) {
$(this).find('>ul').slideToggle();
ev.stopPropagation();
});
答案 0 :(得分:4)
我们会检查当前的网址并打开:
.sub-menu
.sub-menu
代码:
$('.arrows_list1-1 li ul').hide();
$('.arrows_list1-1 li').click(function(ev) {
$(this).find('>ul').slideToggle();
ev.stopPropagation();
});
var url = window.location.href;
var $current = $('.arrows_list1-1 li a[href="' + url + '"]');
$current.parents('.sub-menu').slideToggle();
$current.next('.sub-menu').slideToggle();
答案 1 :(得分:2)
将最后一个标签存储在会话变量中。请参阅此处的MSDN文档:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage
答案 2 :(得分:2)
首先,给你的手风琴的每个级别一个类名,如下所示。另外,设置手风琴每个级别的onclick以设置所点击内容的cookie,这样我们就可以跟踪手风琴的位置。
<ul class="accordion">
<li>
<a href="foo1.php" class="lvl1" onClick="setcookie(this)">level 1</a>
<ul>
<li class="lvl1" onClick="setcookie(this)"><a href="foo2.php">a</a></li>
<li class="lvl1" onClick="setcookie(this)"><a href="foo3.php">b</a></li>
</ul>
</li>
<li>
<a href="foo4.php" class="lvl2" onClick="setcookie(this)">level 2</a>
<ul>
<li class="lvl2">
<a href="foo5.php" class="lvl2" onClick="setcookie(this)">level 3</a>
<ul>
<li class="lvl3"><a href="foo6.php">c</a></li>
<li><a href="foo7.php">d</a></li>
</ul>
</li>
<li><a href="foo8.php">e</a></li>
<li><a href="foo9.php">f</a></li>
</ul>
</li>
</ul>
function setCookie(e) {
document.cookie="activeAccordion=" + $(e).attr('class');
}
接下来,在页面加载时,读取该cookie并将活动手风琴设置为我们在cookie中设置的值。
$(function(){
var activeAccordion = getCookie('activeAccordion');
$('.' + activeAccordion).closest('ul').slideToggle();
});
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++){
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
答案 3 :(得分:1)
在li上点击
设置一个cookie$('.arrows_list1-1 li ul').hide();
$('.arrows_list1-1 li').click(function(ev) {
document.cookie="activeAccordion=" + $(ev).attr('id');
$(this).find('>ul').slideToggle();
ev.stopPropagation();
});
在文档就绪时,读取该cookie并设置正确的级别。
$(function(){
var activeAccordion = getCookie('activeAccordion');
$('#' + activeAccordion).closest('ul').slideToggle();
});
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++){
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
答案 4 :(得分:0)
当手风琴状态从默认值更改时,您可以将其存储在Cookie中,然后在页面刷新时将其读回。