jquery:使用";关于;而不是",;“生活”;
因为jQuery10不支持live(),所以我在()上使用。问题是on()无法检测使用addClass()和removeClass()添加或删除的类 我添加了类menu accordion open,但函数$('.menu a.menu-accordion-open').on()从未被激发,函数$('.menu a.menu-accordion-closed').on()被激发。该类已正确添加。控制台中没有错误 代码:jquery:使用";关于;而不是",;“生活”;,jquery,Jquery,因为jQuery10不支持live(),所以我在()上使用。问题是on()无法检测使用addClass()和removeClass()添加或删除的类 我添加了类menu accordion open,但函数$('.menu a.menu-accordion-open').on()从未被激发,函数$('.menu a.menu-accordion-closed').on()被激发。该类已正确添加。控制台中没有错误 代码: 请使用以下命令 $('body').on( "click", ".menu
请使用以下命令
$('body').on( "click", ".menu a.menu-accordion-closed", function(e) {
.
.
.
});
$('body').on( "click", ".menu a.menu-accordion-open", function(e) {
.
.
.
});
您还可以使用菜单
的最接近父项替换正文
,以获得一点性能提升(尽管几乎没有什么意义)
这称为事件委派。您可以参考所提到的直接和委派事件子主题您正在使用的方法,但缺少上下文参数。阅读此概念,并了解其应用方式:
$(document).on( "click", '.menu a.menu-accordion-closed', function(e) {
console.log('111');
e.preventDefault();
$(".menu-accordion").stop().animate({left:'0px'},200);
$('.menu a.header').addClass( "menu-accordion-open" );
$('.menu a.header').removeClass( "menu-accordion-closed" );
});
$(document).on( "click", '.menu a.menu-accordion-open', function(e) {
console.log('222');
e.preventDefault();
$(".menu-accordion").stop().animate({left:'-279px'}, 100);
$('.menu a.header').removeClass( "menu-accordion-open" );
$('.menu a.header').addClass( "menu-accordion-closed" );
});
这会有帮助的
查找以获取更多信息
$(document).on( "click", '.menu a.menu-accordion-closed', function(e) {
console.log('111');
e.preventDefault();
$(".menu-accordion").stop().animate({left:'0px'},200);
$('.menu a.header').addClass( "menu-accordion-open" );
$('.menu a.header').removeClass( "menu-accordion-closed" );
});
$(document).on( "click", '.menu a.menu-accordion-open', function(e) {
console.log('222');
e.preventDefault();
$(".menu-accordion").stop().animate({left:'-279px'}, 100);
$('.menu a.header').removeClass( "menu-accordion-open" );
$('.menu a.header').addClass( "menu-accordion-closed" );
});
$(document).on('click', '.menu a.menu-accordion-closed', function() {