1

我有 3 个 div 用于在我的网站页面顶部显示导航。全部使用JQuery函数:

$('#div_button').click( function() {
        $('#div_nav').slideToggle();
);

问题是,我可以得到一个场景,我得到 2 个滑动切换/ div 彼此叠加,这并不好。当我单击一个按钮启动 slideToggle 时,我想删除当前显示的任何其他 div。

描述问题的图片:

2 DIVS 在彼此之上

任何人都可以提出解决方案吗?

提前致谢

4

3 回答 3

0

hide()所有其他div优先

$('#div_button').click( function() {
    $('.otherDivClass').hide(); 
   $('#div_nav').slideToggle();
);
于 2013-03-29T12:00:19.347 回答
0

使用 Accordion 之类的插件可以让您应用您所追求的功能,而无需向标题和内容元素添加类。

http://api.jqueryui.com/accordion/

如果您确信需要坚持使用 ID,另一种方法是编写 3 个单独的单击函数,分别打开和关闭相关元素。

于 2013-03-29T13:02:08.517 回答
0

我已经设法找到解决这个问题的方法。基本上你需要使用这个函数来等待其他slideToggles或者slideUPs完成:

$('#tcd-home-view-nav').slideUp(function(){
    // Animation complete.
    $('#tcd-home-edit-nav').slideToggle();
});

欢呼人们帮助我解决这个问题。克里斯

于 2013-03-29T13:25:42.303 回答