0
我已经设置了一个多页html文档,当用户在页面的左侧或右侧滑动选项卡时,在页面之间滑动切换。标签应该刷到哪些页面的信息嵌入到每个页面div顶部的属性中。jquery mobile防止多个处理程序从单个事件触发
初始刷卡工作正常,但每次连续刷卡似乎都会增加,因此下一张清除卡会向上移动两页,接下来的四分之一,依此类推。就我所知,Init函数在每个页面上都会正确地调用一次,但是swipe正在倍增。
四处阅读,我怀疑答案是在它触发一次的时候解除滑动事件,并在页面过渡完成后重新绑定它,但是我不能为我的生活弄清楚如何......我这是一个新手,所以一个简单的解释会很棒!
下面是相关的HTML:
<div data-role="page" id="intro1" class="page" data-rightTarget= "#intro2" data-
leftTarget= "#intro1">
<script>
$("body").on('pageshow', "#intro1", function() {
InitIntroSliders();
});
</script>
...
</div><!-- /intro1 -->
<div data-role="page" id="intro2" class="page" data-rightTarget= "#intro3" data-
leftTarget= "#intro1">
<script>
$("body").on('pageshow', "#intro2", function() {
InitIntroSliders();
});
</script>
...
</div><!-- /intro2 -->
...等。(看来我得把脚本在div的每一页,而不是总负责人,以让他们重新加载初始化每个新页面上的脚本)。
而这里的jQuery的:
function InitIntroSliders(){
$(document).on("swipeleft","#righttab", function(){
var rightTarget = $.mobile.activePage.attr("data-rightTarget");
$.mobile.changePage($(rightTarget), {transition: 'slide'});
//$(document).off("swipeleft", "#righttab", function());
});
$(document).on("swiperight","#lefttab", function(){
var leftTarget = $.mobile.activePage.attr("data-leftTarget");
$.mobile.changePage($(leftTarget), {transition: 'slide', reverse:
'true'});
//$(document).off("swiperight", "#lefttab", function());
});
}
我试着将在注释掉的行打开收口,但一切似乎做的是把整个事情逐渐停顿下来。任何想法非常感谢! Giles