jquery菜单使用slidetoggle()的小问题
Iv 创建了一个基本的垂直滑动菜单,可以在左侧垂直灰色条上看到:
http://www .switchcreative.co.uk/tuckagefinewines/
当您单击某个国家/地区时,子菜单项会向下滑动,并且顶层 + 符号更改为 - 但如何在菜单关闭时将其更改回 +再次。我想我想添加一个均匀的滑动切换向上运动?但不知道如何。我尝试使用 if 语句来更改它,但无法让它工作,这里是我最接近我想要的工作方式的版本:
function initMenu() {
$('#menu ul:not(.active)').hide();
$('#menu li a.top_a').click(
function(e) {
e.preventDefault();
$(this).next().slideToggle('normal');
$(this).siblings('.plus').replaceWith(' - ');
}
);
}
Iv created a basic vertical sliding menu which can be seen here on the left vertical grey bar:
http://www.switchcreative.co.uk/tuckagefinewines/
When you click on a country the sub-menu items slide down and the top level + sign changes to a - but how to I change it back to + when the menu is closed again. I guess I want to add an even to slidetoggles upward motion? but not sure how. I tried using an if statement to change it but couldn't get it to work here is my closest version to working the way Id like:
function initMenu() {
$('#menu ul:not(.active)').hide();
$('#menu li a.top_a').click(
function(e) {
e.preventDefault();
$(this).next().slideToggle('normal');
$(this).siblings('.plus').replaceWith(' - ');
}
);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您要删除
span.plus
尝试设置如下文本:you're removing the
span.plus
try setting the text like this:您可以检查每个子元素的 CSS 高度。如果它大于 0,您的 .plus-element 应再次替换为“+”。 SlideToggle() 除了改变 en 元素的高度之外什么也不做。您可以在此处阅读相关内容
You could check the CSS height of every sub-element. If it's greater than 0, your .plus-element should replaced by a "+" again. slideToggle() does nothing else than changing the height of en element. You can read about it here
将此行:更改
为:
或者甚至有两个跨度:
.plus
可见,.minus
为display: none;
。然后,当您切换下一个元素时,只需执行以下操作:Change this line:
to:
Or even have two spans:
.plus
is visible and.minus
isdisplay: none;
. Then when you toggle the next element just do: