jquery:使用“on”而不是“live”

时间:2015-09-02 07:44:29

标签: jquery

由于jquery 10不支持live()我正在使用on()。问题是on()不会检测使用addClass()和removeClass()添加或删除的类。

我添加了课程 menu-accordion-open ,但函数 $('。menu a.menu-accordion-open')。on()永远不会被解雇然后触发函数 $('。menu a.menu-accordion-closed')。on()。该类正确添加。控制台中没有错误。

代码:

   $('.menu a.menu-accordion-closed').on( "click", 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" );
    });
    $('.menu a.menu-accordion-open').on( "click", 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" );
    });

3 个答案:

答案 0 :(得分:2)

请改用以下内容

xcodebuild -exportArchive -exportFormat IPA -exportProvisioningProfile *** -archivePath path/appname.xcarchive -exportPath path/appname.ipa

您也可以将$('body').on( "click", ".menu a.menu-accordion-closed", function(e) { . . . }); $('body').on( "click", ".menu a.menu-accordion-open", function(e) { . . . }); 替换为距离body最近的父级,以获得一小部分性能(尽管几乎可以忽略不计)

这被称为事件委托。您可以参考提及的{strong>直接和委托事件子主题here

答案 1 :(得分:0)

您正在使用.on方法,但错过了上下文参数。阅读此event delegation概念及其应用方式:

$(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" );
});

答案 2 :(得分:0)

$(document).on('click', '.menu a.menu-accordion-closed', function() {

这将有助于

找到DOCUMENTATION了解更多信息