我有一个<nav>
,我想通过单击句柄链接来打开和关闭来显示。我还想在单击其中一个子链接时关闭<nav>
。在句柄链接和子项上使用slideToggle
不起作用。句柄链接工作正常,但当您单击子链接时,<nav>
会折叠并重新打开。
js小提琴是怎么回事:http://jsfiddle.net/qHZe8/
提前感谢!
您的<ul>
元素也有类pull
,因此单击其中的链接之一也会触发click
事件处理程序以再次切换该元素。
您需要停止从<ul>
内的链接传播的事件,以免发生这种情况。
jQuery("ul.pull li a").click(function(e) {
e.stopPropagation();
$("nav.mobile-navigation").slideUp("fast");
});
问题是你有两个元素与类 pull
.
一种可能的解决方案是使用不同的选择器:
jQuery("a.pull").click(function() {
$("nav.mobile-navigation").slideToggle("fast");
});
演示:http://jsfiddle.net/qHZe8/1/
问题是您在ul和链接中使用相同的类来打开它,因此每当您单击子链接时,它都会执行这两个操作。
如果从 ul 标记中删除该类,它应该可以工作
http://jsfiddle.net/slfede/qHZe8/2/
你已经为<ul>
和句柄提供了相同的CSS类(.pull
)。因此,单击项目也会注册为.pull
处理程序的单击。正确的是:http://jsfiddle.net/X2A3C/