Joomla 3.1中的Bootstrap下拉菜单

Jos*_*Jos 1 joomla twitter-bootstrap

我正在努力让Bootstrap菜单在Joomla 3.1中使用下拉菜单.我差不多了,但并不完全:对于我使用的js脚本(如何在悬停而不是点击时制作twitter引导菜单下拉列表)

 <script type="text/javascript">
   (function($){   
    $(document).ready(function(){
     $('.dropdown-toggle').dropdown();
      // dropdown
      $('.parent').addClass('dropdown');
      $('.parent > a').addClass('dropdown-toggle');
      $('.parent > a').attr('data-toggle', 'dropdown');
     $('.parent > a').attr('data-target', '#');
      $('.parent > a').append('<b class="caret"></b>');
      $('.parent > ul').addClass('dropdown-menu');
     $('.nav-child .parent').removeClass('dropdown');
     $('.nav-child .parent .caret').css('display', 'none');
      $('.nav-child .parent').addClass('dropdown-submenu');
    });
  })(jQuery);
</script>
Run Code Online (Sandbox Code Playgroud)

我是我们的CSS(http://forum.joomla.org/viewtopic.php?f=706&t=770153)

.dropdown-menu .sub-menu {
    left: 100%;
    position: absolute;
    top: 0;
    visibility: hidden;
    margin-top: -1px;
}

.dropdown-menu li:hover .sub-menu {
    visibility: visible;
}

.dropdown:hover .dropdown-menu {
    display: block;
}

.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu, .navbar .dropdown-menu {
    margin-top: 0;
}

.navbar .sub-menu:before {
    border-bottom: 7px solid transparent;
    border-left: none;
    border-right: 7px solid rgba(0, 0, 0, 0.2);
    border-top: 7px solid transparent;
    left: -7px;
    top: 10px;
}
.navbar .sub-menu:after {
    border-top: 6px solid transparent;
    border-left: none;
    border-right: 6px solid #fff;
    border-bottom: 6px solid transparent;
    left: 10px;
    top: 11px;
    left: -6px;
}
Run Code Online (Sandbox Code Playgroud)

这很好用,有一点需要纠正:菜单栏中的链接仅用于显示菜单下的菜单.我需要的是让toplink也能正常工作.我怎样才能做到这一点?

Nar*_*rim 6

不幸的是因为你需要在顶部菜单项上"点击"以显示它下面的下拉菜单,你不能在这个项目上有一个链接它必须我设置为href ="#",否则每次点击它都会重新加载页面和因此不显示下拉列表.如果你的设置确实有效,那么菜单会在"悬停"时显示,并且不需要点击,只需删除即可

$('.parent > a').attr('data-target', '#');
Run Code Online (Sandbox Code Playgroud)

从您的JavaScript,这将保持菜单项上的链接完整(假设您已正确设置菜单项类型.

希望这可以帮助

出于完整性,我在Joomla 3.2上使用以下内容

jQuery(document).ready(function(){

        // dropdown

        jQuery('.parent').addClass('dropdown');
        jQuery('.parent > a').addClass('dropdown-toggle');
        jQuery('.parent > a').attr('data-toggle', 'dropdown');
        jQuery('.nav > .parent > a').attr('href','#');
        jQuery('.parent > a').append('<span class="caret"></span>');
        jQuery('.parent > ul').addClass('dropdown-menu');
        jQuery('.nav-child .parent').removeClass('dropdown');
        jQuery('.nav-child .parent').addClass('dropdown-submenu');
        jQuery('.dropdown-submenu > a').removeAttr('class');
        jQuery('.dropdown-submenu > a').removeAttr('data-toggle', 'dropdown');
        jQuery('.dropdown-submenu > a > span').remove();
    });
Run Code Online (Sandbox Code Playgroud)

我不需要自定义我的css,除了更改颜色这是我的template.css中的css,它指的是导航栏布局,大多数只是自定义视觉信息而不是真正影响下拉列表./*自定义导航栏链接以填充.navbar的整个空间*/

.navbar .navbar-inner {
    padding: 0;
    font: Arial;
}
/* .navbar .nav {
        margin: 0;
        display: table;
        width: 100%;*/
}
.navbar .nav li {
    display: table-cell;
    width: 1%;/*        float: none;*/
}
.navbar .nav li a {
    text-align: center;
    border-left: 1px solid rgba(255,255,255,.75);
    border-right: 1px solid rgba(0,0,0,.1);
}
.navbar .nav li:first-child a {
    border-left: 0;
    border-radius: 3px 0 0 3px;
}
.navbar .nav li:last-child a {
    border-right: 0;
    border-radius: 0 3px 3px 0;
}
Run Code Online (Sandbox Code Playgroud)

列夫