Jquery移动滑动导航触发奇怪的

Jquery移动滑动导航触发奇怪的,jquery,jquery-mobile,Jquery,Jquery Mobile,我尝试构建一个训练应用程序,您可以在其中左右滑动以查看下一个训练(在您的移动设备上)。我已经对Jquery移动文档和stackoverflow进行了研究,但我就是不知道我的错误在哪里。如果能得到某人的暗示就太好了 基本上问题是:它的工作95%,但有时我的刷卡事件触发更频繁或什么。(但我知道冒泡,但仍然找不到错误) 由于练习来自一个数据库,我构建了数据role=“page”,在每个练习上都有一个for循环。这是我的密码。您可以尝试一下->有时它会滑到错误的页面 <html> <b

我尝试构建一个训练应用程序,您可以在其中左右滑动以查看下一个训练(在您的移动设备上)。我已经对Jquery移动文档和stackoverflow进行了研究,但我就是不知道我的错误在哪里。如果能得到某人的暗示就太好了

基本上问题是:它的工作95%,但有时我的刷卡事件触发更频繁或什么。(但我知道冒泡,但仍然找不到错误)

由于练习来自一个数据库,我构建了数据role=“page”,在每个练习上都有一个for循环。这是我的密码。您可以尝试一下->有时它会滑到错误的页面

<html>
<body>

 <?php for($i = 2; $i < 6; $i++){ 

$num = $i;
if($i > 2) $prev = 'uebung_'. ($num-1);
else    $prev = ''; 
if ($i < 6) $next = 'uebung_'. ($num+1);
else $next = '';

?>   
 <div id="uebung_<?php echo $i;?>" data-role="page" class="uebungen_pages" data-dom-cache="true"  data-prev="<?php echo $prev;?>" data-next="<?php echo $next;?>">

 <?php
 // some short Jquery Mobile panel+header
include 'panel.php'; 
include 'header.php';



这只是一个理论,因为您没有发布整个页面,但我猜您在多事件绑定方面有问题。由于此原因,页面滑动会触发多次

要解决这个可能的问题,您需要修复所有函数绑定(除了pageinit、pageshow等页面事件绑定)

您需要做的是更改以下内容:

$( document ).on( "swiperight", page, function() {
    $.mobile.changePage( '#'+prev, { transition: "slide", reverse: true } );
});
为此:

$( document ).off("swiperight", page).on("swiperight", page, function() {
    $.mobile.changePage( '#'+prev, { transition: "slide", reverse: true } );
});
在装订的每一页上都这样做。这通常是jquerymobile特有的问题


请看我自己的页面浏览示例:

谢谢您,先生!以前我试过.off(“swiperright”)。on(“swiperright,page等等…),但我忘记了off(“swiperright”,page…)。。。
 <?php } //end for $I?>
$( document ).on( "swiperight", page, function() {
    $.mobile.changePage( '#'+prev, { transition: "slide", reverse: true } );
});
$( document ).off("swiperight", page).on("swiperight", page, function() {
    $.mobile.changePage( '#'+prev, { transition: "slide", reverse: true } );
});