jQuery |删除活动类

时间:2014-12-13 00:35:47

标签: jquery

很难理解这里到底发生了什么。我有一个导航图标的汉堡包,当用户点击图标时,为元素添加一个活动类。

出于某种原因,当活动类在元素上时,我无法控制.log?我希望能够做到这一点的原因是,如果用户在活跃时点击汉堡包以回到它,那么"非"活跃的国家。

这是我的jQuery

var nav = $('.nav-toggle'),
    activeNav = $('.nav-show');

nav.on("click", function(e){
    e.preventDefault();
    $(this).addClass('nav-show');
});

activeNav.on("click", function() {
    console.log("clicked active nav");
});

JSFIDDLE DEMO

2 个答案:

答案 0 :(得分:2)

这是因为当您声明变量时,绑定已经设置在任何一个处于活动状态的绑定,并且当您更改类时,您不会重新应用绑定。只需绑定到包装器元素并代之以委托事件:

更改activeNav.on("click", function() {

$('.some-static-container-div').on('click', '.nav-show', function () {...

答案 1 :(得分:1)

试试这个:

var nav = $('.nav-toggle');

nav.on("click", function(e){
    e.preventDefault();
    var $this = $(this);
    if ( $this.hasClass('nav-show') ) {
        $(this).removeClass('nav-show');
        alert("asdas");
        console.log("clicked active nav");
    } else {
        $(this).addClass('nav-show');
    }

});

Code here