Jquery 添加 Class 并用作选择器?
Jquery add Class and use as selector?
嘿,所以我真的不确定我做错了什么,
基本上我有一个按钮 'a#mobile_menu_btn',我正在向它添加一个 class,'.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');
});
我无法使用切换按钮,因为该按钮执行其他功能,所以我想保持简单,只在适当的时候使用添加/删除 class。
我试过各种写法 '$('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')
我哪里错了?提前致谢
当您动态添加时 class。
您需要使用 Event Delegation. You have to use .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');
}
});
嘿,所以我真的不确定我做错了什么,
基本上我有一个按钮 'a#mobile_menu_btn',我正在向它添加一个 class,'.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');
});
我无法使用切换按钮,因为该按钮执行其他功能,所以我想保持简单,只在适当的时候使用添加/删除 class。
我试过各种写法 '$('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')
我哪里错了?提前致谢
当您动态添加时 class。
您需要使用 Event Delegation. You have to use .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');
}
});