jquery - jquery 导航中的按钮冲突

标签 jquery html css

我正在开发一个网络应用程序,我必须在标题中添加按钮;分享和选择。单击按钮时,其相关内容会下降,再次单击按钮时会恢复。两个按钮都可以正常工作。但是,如果用户要单击共享按钮然后单击选项按钮而不关闭共享内容,选项的内容将在共享内容下方打开。

我只想一次显示一个按钮的内容。如果用户要在另一个按钮未折叠时单击一个按钮,则应先将其折叠。

我对 jquery 不是很熟悉,我不确定如何解决这个问题。

此外,如果您认为我可以以任何方式优化我的代码,我会感谢您的建议。

谢谢你..

  $('.pull_box_share_triger').click(function() {
        if(!collapsed){  
            var h = document.getElementById('share_box').Height;
            $('#share_box').animate({ height : h+'px' });
            $('#share_link_box').css({ display:'inline-block'});
            $(".overlay").css({ display:'block'});
            $(".pull_box_share_triger").css({ background:'#ffffff' });
            $('#share_social_box').css({ display:'inline-block'});
            $('.share_button').css({ display : 'inline-block'});
        } else {
            $('#share_box').animate({height: 'auto'});
            $('#share_link_box').css({ display:'none'});
            $(".overlay").css({ display : 'none'});
            $(".pull_box_share_triger").css({ background:'#f2f2f2'});
            $('#share_social_box').css({ display:'none'});
            $('.share_button').css({ display : 'none' });
        }
        collapsed = !collapsed;
    });

    $('.pull_box_option_triger').click(function() {
        if(!collapsed){ 
            var h = document.getElementById('options_box').Height;
            $('#options_box').animate({ height : h+'px' });
            $(".overlay").css({ display:'block'});
            $(".pull_box_option_triger").css({ background:'#ffffff' });
            $(".options_content").css({ display:'inline-block'});
        } else {
            $('#options_box').animate({height: 'auto'});
            $(".overlay").css({ display : 'none'});
            $(".pull_box_option_triger").css({ background:'#f2f2f2'});
            $(".options_content").css({ display:'none'});
        }
        collapsed = !collapsed;
    });

最佳答案

创建两个单独的函数来隐藏共享和选项内容,然后在单击按钮时调用,以便先隐藏它们。

$('.pull_box_share_triger').click(function() {
        hideOption();
        if(!collapsed){  
            var h = document.getElementById('share_box').Height;
            $('#share_box').animate({ height : h+'px' });
            $('#share_link_box').css({ display:'inline-block'});
            $(".overlay").css({ display:'block'});
            $(".pull_box_share_triger").css({ background:'#ffffff' });
            $('#share_social_box').css({ display:'inline-block'});
            $('.share_button').css({ display : 'inline-block'});
        } else {
             hideShare();
        }
        collapsed = !collapsed;
    });

    $('.pull_box_option_triger').click(function() {
hideShare();
        if(!collapsed){ 
            var h = document.getElementById('options_box').Height;
            $('#options_box').animate({ height : h+'px' });
            $(".overlay").css({ display:'block'});
            $(".pull_box_option_triger").css({ background:'#ffffff' });
            $(".options_content").css({ display:'inline-block'});
        } else {
               hideOption();
            }
        collapsed = !collapsed;
    });

   function hideShare()
{
  $('#share_box').animate({height: 'auto'});
            $('#share_link_box').css({ display:'none'});
            $(".overlay").css({ display : 'none'});
            $(".pull_box_share_triger").css({ background:'#f2f2f2'});
            $('#share_social_box').css({ display:'none'});
            $('.share_button').css({ display : 'none' });

}

function hideOption()
{
 $('#options_box').animate({height: 'auto'});
            $(".overlay").css({ display : 'none'});
            $(".pull_box_option_triger").css({ background:'#f2f2f2'});
            $(".options_content").css({ display:'none'});

}

关于jquery - jquery 导航中的按钮冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17370259/

相关文章:

jquery - 我如何向这个 jQuery 插件模式添加一个方法?

html - 添加链接后表格中的额外空间

html - 带跟随线的垂直演示

html - 在 IE 中调整流体宽度部分的大小

javascript - 谷歌地图中心不稳定

php - Ajax 模式不断消失

javascript - 使用 HTML5、CSS3、Javascript 创建交互式 map

javascript - 将参数传递给内联函数

javascript - 如何在不让列表/内容切换的情况下让我的静音取消静音功能在视频叠加元素上工作?

jquery - 需要根据站点部分更改 CSS div 定位