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