由于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" );
});
答案 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)