我正在使用包含ul和li标签的side-nav。
看起来像:
<li>
<a href="javascript:;">Mobile</a>
</li>
<li class="uk-nav-header">
PLATFORM SPECIFIC GUIDES
</li>
<li class="uk-active uk-magento" data-toggle="collapse" data-target="#demo" aria-expanded="true" aria-controls="demo">
<a href="/docs/magento">Magento Extension</a>
<ul class="uk-nav-sub uk-nav-parent-mag hidden" >
<li><a href="#step1">1.Install Magento Extension</a></li>
<li><a href="#step2">2.Configure extension</a></li>
<li><a href="#step3">3.Launch Widgets</a></li>
<li><a href="#faq"> Frequently Asked Questions</a></li>
</ul>
</li>
在这里,我想点击标题&#34; Magento Extension&#34;通常应该滑动的是兄弟姐妹副标题。 但现在,当我点击标题时,它会刷新页面并且副标题不会滑动。
我正在使用的代码是:
$(".uk-magento").click(function(e) {
e.preventDefault();
$(this).parent().siblings().hasClass('.uk-nav-parent-mag').removeClass("hidden", 400, "easeInBack");
});
答案 0 :(得分:1)
问题是hasClass()返回boolean值,而不是jQuery对象,因此下一个链式方法调用(.removeClass()
)将失败。
uk-nav-parent-mag
选择器也是错误的。
$(".uk-magento").click(function(e) {
e.preventDefault();
$(this).find('.uk-nav-parent-mag').removeClass("hidden", 400, "easeInBack");
});
.hidden {
display: none
}
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/redmond/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.js"></script>
<ul>
<li>
<a href="javascript:;">Mobile</a>
</li>
<li class="uk-nav-header">
PLATFORM SPECIFIC GUIDES
</li>
<li class="uk-active uk-magento" data-toggle="collapse" data-target="#demo" aria-expanded="true" aria-controls="demo">
<a href="/docs/magento">Magento Extension</a>
<ul class="uk-nav-sub uk-nav-parent-mag hidden">
<li><a href="#step1">1.Install Magento Extension</a></li>
<li><a href="#step2">2.Configure extension</a></li>
<li><a href="#step3">3.Launch Widgets</a></li>
<li><a href="#faq"> Frequently Asked Questions</a></li>
</ul>
</li>
</ul>
答案 1 :(得分:0)
您的DOM结构对于您要实现的目标而言似乎非常复杂。
应该谨慎使用parent(),siblings()和hasClass(),并且只能在复杂DOM元素层次结构不可避免的情况下使用。
如果没有更多信息,很难说这个侧面导航如何适应页面其他部分的上下文,但这里有一些简化方法:
HTML:
<li>
<a href="javascript:;">Mobile</a>
</li>
<li class="uk-nav-header"> PLATFORM SPECIFIC GUIDES </li>
<li class="uk-active uk-magento" data-toggle="collapse" data-target="#demo" aria-expanded="true" aria-controls="demo"> Magento Extension</li>
<ul class="uk-nav-sub uk-nav-parent-mag hidden" >
<li><a href="#step1">1.Install Magento Extension</a></li>
<li><a href="#step2">2.Configure extension</a></li>
<li><a href="#step3">3.Launch Widgets</a></li>
<li><a href="#faq"> Frequently Asked Questions</a></li>
</ul>
JS:
$(".uk-magento").on("click", function() {
$(".uk-nav-parent-mag").toggleClass("hidden", 400, "easeInBack");
});