单击按钮后向元素添加类不起作用

时间:2015-09-02 14:34:26

标签: javascript jquery twitter-bootstrap joomla navbar

我有一个带有bootstrap的响应式joomla页面。 当我点击移动菜单的按钮(class =" navbar-toggle")时,我想扩展它并显示li元素(" .item-259")包含一个已经打开的下拉菜单,通过添加类"打开"。

我不知道为什么这段代码不起作用,但是课程"打开"没有添加到li.item-259,当我点击按钮并显示菜单...

有人知道它有什么问题吗?

<script type="text/javascript"> 
    jQuery('.navbar-toggle').on('click',function(){
    jQuery('.item-259').addClass('open');
});
</script>  

编辑:这是html ...感谢您的快速帮助

        <div class="container">
            <nav class="navbar navbar-default">
                <div class="navbar-header">    <!-- =MOBILE -->

                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#hauptnavigation" aria-expanded="false">
                        <span class="sr-only">Hauptmenü ausklappen</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>


                    <a class="navbar-brand" title="zur Startseite" href="/index.php">                                          
                        <img class="logo" src="..." alt="Logo" />
                    </a>

                </div><!-- navbar-header -->

                <div class="collapse navbar-collapse" id="hauptnavigation">
                    <nav>
                        <jdoc:include type="modules" name="menu" />
                    </nav>  
                </div><!-- navbar-collapse -->

            </nav>
        </div><!-- container -->

太奇怪了......这也不起作用:

<script type="text/javascript"> 
    jQuery(document).ready(function(){
        jQuery('.navbar-toggle').on('click',function(){
        jQuery('.item-259').addClass('open');
        });
    }); 
</script> 

但这是有效的:

<script type="text/javascript"> 
    jQuery(document).ready(function(){
        jQuery(document).on('click',function(){
        jQuery('.item-259').addClass('open');
        });
    }); 
</script>  

问题是,如果不是移动版本,我的子菜单会在文档的每次点击(无处不在)上打开...

2 个答案:

答案 0 :(得分:0)

   jQuery的(文件)。就绪(函数(){

jQuery('.navbar-toggle').on('click',function(){
    jQuery('.item-259').addClass('open');
    });

});    

    jQuery('.navbar-toggle').live('click',function(){
        jQuery('.item-259').addClass('open');
    });

答案 1 :(得分:0)

首先,代码应该保持在:

之间
$(document).ready(function(){

});

也许元素没有被描述为CSS选择器,但是如果没有HTML代码或者类似的话我就不能完全说出来。