jquery:使用";关于;而不是",;“生活”;

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

因为jQuery10不支持live(),所以我在()上使用。问题是on()无法检测使用addClass()和removeClass()添加或删除的类

我添加了类menu accordion open,但函数$('.menu a.menu-accordion-open').on()从未被激发,函数$('.menu a.menu-accordion-closed').on()被激发。该类已正确添加。控制台中没有错误

代码:


请使用以下命令

$('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() {