带有下拉菜单.js的 JQuery 导航突出显示



我是JQuery的新手,但我发现它非常有用。我正在尝试使用 JQuery 突出显示用户所在页面的导航项。我已经尝试了几种我发现的类似技术,但我无法让任何东西正常工作,我想知道这是否是因为我正在使用下拉菜单.js这可能会导致一些问题。

我创建了一个名为 .selected 的 CSS 类,当手动应用于导航项时,它会执行我需要它的功能。然后我得到了以下 JQuery 代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$('#nav-one li a').click(function() {
$(this).closest("li").addClass('selected').siblings().removeClass('selected');
return(false);  
});
</script>

我的菜单看起来像这样:

<ul id="nav-one" class="dropmenu css-only">
<li><a href="index.html">Home</a></li>
<li><a href="our_cupcakes.html">Our Cupcakes</a>
<ul>
<li><a href="birthday_cupcakes.html">Birthday Cupcakes</a></li>
<li><a href="new_baby_cupcakes.html">New Baby Cupcakes</a></li>
<li><a href="anniversary_cupcakes.html">Anniversary Cupcakes</a></li>
<li><a href="just_because_cupcakes.html">Just Because Cupcakes</a></li>
<li><a href="seasonal_cupcakes.html">Seasonal Cupcakes</a></li>
<li><a href="special_order_cupcakes.html">Special Order Cupcakes</a></li>
</ul>
</li>
<li><a href="flavours_and_colours.html">Flavours &amp; Colours</a></li>
<li><a href="faqs.html">FAQs</a>
<ul>
<li><a href="faqs.html">General questions</a></li>
<li><a href="faqs.html#ingredients">Ingredients</a></li>
<li><a href="faqs.html#delivery">Delivery &amp; Pick-up</a></li>
<li><a href="faqs.html#about">About us</a></li>
</ul>
</li>
</li>
<li><a href="order_cupcakes.php">Order Cupcakes</a> </li>
</ul>         

Dropmenu.js 我的下拉菜单是否有效,并且有一个单独的 CSS,但我看不出这会阻止我使用 JQuery 将 .selected 类应用于导航项,但我可能是错的。

有人能给我一些提示,说明我可能出错的地方吗?最终,代码将放在我妻子的家庭烘焙网站上 http://cupcakes.ladybirdbakery.co.uk

非常感谢。

蚂蚁

编辑 2:我没有意识到您正在尝试突出显示用户所在页面的菜单选项。这是完全不同的事情,你现在所做的是接近 i 的错误方式,原因如下:当用户单击链接时,类selected被添加到<li>中。但是随后加载了一个全新的页面JavaScript(和jQuery)对网页所做的更改不会在将来的页面中保留。因此,这意味着当加载新页面时,没有一个<li>具有selected类,直到有人单击一个页面(但随后另一个页面将立即加载,因此他们不会看到li突出显示)。
至于如何实现这一点,我建议手动将类selected添加到每个HTML文件中的正确li。但如果你真的想使用 JavaScript,下面是代码:

$(function(){ // this is a shortcut for $(document).ready(function(){
  var filename = location.pathname.substring(location.pathname.lastIndexOf('/')+1)
  $('a[href="' + (filename ? filename : 'index.html') + '"]').parent('li').addClass('selected')
})

因此,首先我们创建一个变量filename并将其设置为当前页面的文件名。然后我们找到所有<a>属性href等于文件名,获取它们的父<li>元素,并添加类selected。我希望这有所帮助。如果您有更多问题或疑问,请告诉我。谢谢!

相关内容

  • 没有找到相关文章

最新更新