无法使用jquery关闭下拉列表

时间:2015-07-16 17:46:37

标签: jquery html5 css3 web

这是包含所有代码的小提琴: https://jsfiddle.net/rajat_bansal/rtapaew5/1/

这是导致问题的我的jquery部分: -

$(document).ready(function(e) {

        $(".sub-handle").click(function() {
           if(!$(this).hasClass('showing-sub')){ //class doesnt exists so add     it and open dropdowns giving specific backgrounds
            $(this).find(".submenu").addClass('showing-sub');
            $(this).addClass("sidebarElementDivOnClick");
            $(this).find("a").addClass("outerMenuItem");
          }
          else{ 
              $(this).find(".submenu").removeClass("showing-sub");
         }
      });

      $(".innerMenuItem").click(function(){
       $(this).toggleClass("innerMenuItemOnClick");
      });
    }); 

从我看到的,它不让我删除课程。我想这是次要的。我对jquery很新。任何有关解释的帮助将不胜感激。 谢谢!

2 个答案:

答案 0 :(得分:0)

你只是在检查班级的错误元素。我还添加了必要的代码,以便在菜单关闭时删除类。

$(".sub-link").click(function() {
    if(!$('.submenu').hasClass('showing-sub')){ //class doesnt exists so add it and open dropdowns giving specific backgrounds
        $(".sub-handle").find(".submenu").addClass('showing-sub');
        $(".sub-handle").addClass("sidebarElementDivOnClick");
        $(".sub-handle").find("a").addClass("outerMenuItem");
    } else { //if class exists..that means it was clicked again
        $(".sub-handle").find(".submenu").removeClass("showing-sub");
        $(".sub-handle").removeClass("sidebarElementDivOnClick");
        $(".sub-handle").find("a").removeClass("outerMenuItem");
    }
});

我已更新您的代码here

答案 1 :(得分:-1)

你在jquery中有错误的条件:

你的病情应该是

if(! $(this).find(".submenu").hasClass('showing-sub')){

OR

if(!$(this).hasClass('sidebarElementDivOnClick')){

检查https://jsfiddle.net/rtapaew5/4/

对于状态锚标记点击事件:https://jsfiddle.net/rtapaew5/7/