嘿所以我真的不确定我做错了什么,
基本上我有一个按钮'a #mobile_menu_btn'我正在添加一个类,'。active'然后我想用作选择器,但它不起作用。
$('a#mobile_menu_btn').click(function () {
$('a#mobile_menu_btn').addClass('active');
$('#mobile_nav').addClass('expand');
});
$('a#mobile_menu_btn.active').click(function () {
$('#mobile_nav').addClass('expand');
$('a#mobile_menu_btn').removeClass('active');
});
我无法使用切换,因为按钮执行其他功能所以我想保持简单,只需在适当时使用添加/删除类。
我尝试了各种各样的写作'$('a #mobile_menu_btn'); 包括;
$('a#mobile_menu_btn.active')
$('a#mobile_menu_btn .active')
$('span#mobile_menu_btn.active')
$('div#mobile_menu_btn.active')
$('a#mobile_menu_btn.active')
我哪里错了?提前致谢
答案 0 :(得分:2)
正在动态添加课程。
您需要使用Event Delegation。您必须使用委托事件方法来使用.on()。
一般语法
$(document).on(event, selector, eventHandler);
理想情况下,您应该使用最近的静态容器替换document
以获得更好的性能。
$(document).on('click', 'a#mobile_menu_btn.active', function () {
$('#mobile_nav').addClass('expand');
$('a#mobile_menu_btn').removeClass('active');
});
但是,您不需要事件委派,因为您可以使用.hasClass()
$('a#mobile_menu_btn').click(function () {
if($(this).hasClass('active')){
$(this).removeClass('active');
}else{
$(this).addClass('active');
}
});