我有以下代码淡出一页,一旦淡出,淡入另一页。我正在使用来自jQuery的.one来处理转发端侦听器。
它始终不起作用,事件不会被触发。但是,一旦我在.one和.removeClass(启动动画)之间添加延迟,它就会起作用。
var old_pageid = parseInt( $('#container .page-show').attr( 'id').match( /\d+/)[0]);
$( '#pc'+old_pageid).one( 'transitionend', $.proxy( function() {
$( '#pc'+old_pageid).addClass( 'display-none');
$( '#pc'+pageid).removeClass( 'display-none');
setTimeout( function() {
$('#pc'+pageid).addClass( 'page-show');
}, 50);
}, this)).removeClass( 'page-show');
它看起来像第一个。一个电话需要太长时间。我认为一个是阻塞功能。但最后一次removeClass(' page-show')被调用,但没有任何反应。第一个.one中的回调未被调用。
这里有什么问题?我怎么能保证,第一个。一个人真的已经完成了,并且正在倾听“过渡期”。 ?
另一个奇怪的事情是,当我立即添加页面显示时,转换不起作用。但使用超时50毫秒,它的工作原理。因为页面首先设置为display:none;,然后添加其删除页面显示,使页面不透明:1。