我是JS和jQuery newb所以请耐心等待。我有一些脚本工作,但它不能完全按照我的意愿去做,我无法理解。基本的想法是我单击一个链接,然后使用slideToggle打开一个div。棘手的部分是在打开一个新的div之前关闭一个先前打开的div,我能做的最好的就是隐藏前一个div。试图切换前一个div大概不起作用,因为我没有专门针对div,而是告诉它在打开新的div之前关闭所有div。我遇到的另一个问题是同一页面上的链接似乎被禁用,这似乎是由于“return false”命令,但我不知道如何在我点击时将页面滚动到顶部如果我不使用该命令,请滑动链接。谢谢你的帮助。
以下是我正在使用的内容:http://jsfiddle.net/NkX2Z/
答案 0 :(得分:1)
您必须执行更多控制才能使外部链接正常工作。
这是我的解决方案,实际上我不知道它是否是您正在寻找的但也许它可以帮助您
if($("#"+$(this).attr("class")).length && !$("#"+$(this).attr("class")).is(':visible'))
此处的条件检查对应于a元素的div是否存在,如果存在,则检查该div是否尚未打开。 当页面状态满足那些约束时,执行if块。
更新1
这是带滑动时间的代码:
var time = 1200;
.slideUp(time);
.slideDown(time);
更新2
这是改进版本,它通过滚动页面预先设置了'#'
的链接:
if($(this).attr('href') == '#')
return false;
答案 1 :(得分:0)
答案 2 :(得分:0)
您正在使用“a”选择器选择页面中的所有链接。并且您返回false,这会禁用所有这些链接。我建议用div元素包装链接并给它id或class,然后将事件附加到那些链接。
你正在建设的内容与手风琴http://jqueryui.com/demos/accordion/非常接近。也许那就是你想要的?