我已编写以下代码但发现click.intro-mask
事件未在iOS Safari中正确注册。我怀疑这是因为setTimeout
函数在底部的第二行中的递归,但我不确定。有人可以帮我这个吗?为什么点击事件不起作用?
function init(cbs) {
_cbs = cbs;
var mask = $('<div class="intro-mask"></div>');
$(document.body).append(mask);
showIntro();
}
function showIntro() {
console.log('showIntro');
$(document.body).off('click.intro-mask');
if (_stage == 6) {
goFavorstockPage();
} else {
var id = 'intro-stage-' + _stage;
if (_stage) {
console.log('if _stage:', _stage, '_cbs[_stage]()');
_cbs[_stage]();
}
$('.intro-mask').html('');
$('.intro-mask').append(introImgTpl({
imgId: id,
imgUrl: '/wx/img/' + id + '.png'
}));
$('.' + id).load(function() {
$('.' + id).css({
"opacity": 1
});
});
setTimeout(function() {
_stage += 1;
console.log('in set time out')
$(document.body).on('click.intro-mask', '.intro-mask', showIntro);
}, 100);
}
}