很难理解这里到底发生了什么。我有一个导航图标的汉堡包,当用户点击图标时,为元素添加一个活动类。
出于某种原因,当活动类在元素上时,我无法控制.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");
});
答案 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');
}
});