2016-03-15 2 views
0

Я создаю раскрывающееся меню по щелчку. Когда клика нажата, выпадающее меню спускается вниз, тогда, когда что-то, кроме dropmenu, коснулось dropmenu, он возвращается назад. Осталось только сбросить всплывающее меню при повторном нажатии ссылки. Я добавил класс ссылки .act, чтобы я мог выделить его из других ссылок (чтобы затем я мог скрыть его при нажатии), но jquery не читает этот добавленный класс. Вот мой код.JQuery не читает динамически добавленный класс

function headerNav() { 
    $('header nav a').bind('click', function(e) { 
     e.preventDefault(); 
    }); 

    // change 
    $('header nav a').on('click', function() { 
     changeNavCont($(this)); 
    }); 

    //show 
    $('header nav a').on('click', function() { 
    $('.dropDownMenu').addClass('show'); 
    $(this).addClass('act'); 
    }); 

    //hide 
$('header nav a.act').on('click', function() { 
     $('.dropDownMenu').removeClass('show'); 
     $('header nav a').removeClass('act'); 
}); 

    $(document).on('click', function(e) { 
    if (($(e.target).closest('header nav').length === 0)) { 
     $('.dropDownMenu').removeClass('show'); 
     $('header nav a').removeClass('act'); 
    } 
    }); 
} 

function changeNavCont($this) { 

    $('header nav a').removeClass('act'); 
    $this.addClass('act'); 
    var show = $this.attr('href'); 
    $('.dropDownMenu article').removeClass('show'); 
    $('.dropDownMenu article.' + show).addClass('show'); 

} 
+0

Это беспорядок, должен быть больше похож -> https://jsfiddle.net/o4o5yave/ – adeneo

ответ

1

Вы используете $this на вашем шоу функции, но $ это не определено в этой функции. Похоже, что вы должны использовать $(this) делает его:

//show 
$('header nav a').on('click', function() { 
    $('.dropDownMenu').addClass('show'); 
    $(this).addClass('act'); 
}); 
+0

Эй, спасибо за ответ. Хороший улов на $ (это), но Jquery по-прежнему не собирает добавленный класс .act. Я обновил код выше с вашей коррекцией и добавил функцию hide im im, чтобы скрыть выпадающий список, когда нажата ссылка с классом .act. – Erik

+0

Можете ли вы сделать скрипку со своим html на jsfiddle.net? –

+0

На данный момент я не работаю, и возвращаюсь к вам. Спасибо за помощь – Erik

Смежные вопросы