jquery-mobile - 滑动过渡改变页面jquery mobile

标签 jquery-mobile swipe-gesture

我在使用 jQueryMobile 时遇到问题,我搜索了好几个小时的答案,但没有任何效果:(

我可以通过向左或向右滑动来移动下一个或上一个项目。

上面的代码工作正常,但一段时间后就变得疯狂了。

我在“A 部分”,向右滑动,进入“B 部分”,向左滑动,返回“A”,然后再次向右滑动,转到“C” 一旦在“C”上,如果我再次滑动,就会连接轮播

我从页面C传递到A,然后我返回B返回C等等...... 经过十年的变化,它停在页面上,我滑动,这更像是一种完全疯狂的滚动显示效果

下一个和上一个是网址

在 html 中

   <div data-role="page" data-dom-cache="false" class="actus-page" id="news" data-theme="a" data-next="http://wip17.kenjidev.com/n/39409" data-prev="http://wip17.kenjidev.com/n/39423" data-title="La vitalité de la traduction, levier décisif de la diversité éditoriale">

如果我把线路加载页面,这个费用有无限的ajax页面(有超过50 000个项目..)

和js

  $( document ).on( "pageinit", "[data-role='page'].actus-page", function() {
    var page = "#" + $( this ).attr( "id" ),
        next = $( this ).jqmData( "next" ),
        prev = $( this ).jqmData( "prev" );

    if ( next ) {
        //$.mobile.loadPage( next + ".htm" );
        $( document ).on( "swipeleft", page, function() {
            console.log(next +' : ' + page + ' : ' + prev );
            $.mobile.changePage( next  , {transition: "slide"});
        });
    }
    if ( prev ) {
        $( document ).on( "swiperight", page, function() {
            console.log(prev +' : ' + page + ' : ' + next );
            $.mobile.changePage( prev, { transition: "slide" , reverse: true } );
        });
    }
});

感谢帮助


编辑:已解决

感谢奥马尔的帮助

最后这里的代码解决了所有问题:

 $( document ).on( "pageinit", ".actus-page", function() {
var 
    $page = $(this),
    page = "#" + $page.attr( "id" ), 
    next = $page.jqmData( "next" ), 
    prev = $page.jqmData( "prev" ); 

if ( next ) {  
    $page.on( "swipeleft", function() { 
        $.mobile.changePage( next , {transition: "slide"}); 
    }); 
} 

if ( prev ) { 
    $page.on( "swiperight", function() { 
        $.mobile.changePage( prev, { transition: "slide" , reverse: true} ); 
    }); 
}});

最佳答案

如果每个页面都有一个 ID,请使用以下代码在 DOM 中的页面之间动态导航。

$(document).on('swipeleft swiperight', function (event) {
 if(event.type == 'swiperight') {
  var prevpage = '#' + $.mobile.activePage.prev('div[data-role="page"]')[0].id;
  $.mobile.changePage(prevpage, {
   transition: 'slide',
   reverse: true
  });
 }

 if(event.type == 'swipeleft') {
  var nextpage = '#' + $.mobile.activePage.next('div[data-role="page"]')[0].id;
  $.mobile.changePage(nextpage, {
   transition: 'slide',
   reverse: false
  });
 }
});

关于jquery-mobile - 滑动过渡改变页面jquery mobile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15838180/

相关文章:

Android,如何在 AVD 中模拟滑动手势?

ios - UITableView 滑动删除 - 对齐文本标签

ios - 在 iOS 中水平滚动字符并在中心放大一个字符

javascript - 如何安排网页中js和css文件的顺序?

jquery-mobile - Phonegap 和 C2DM - NullPointerException

javascript - 单击更改视频 - 在 div 内部?

android - 简单的滑动手势到 Activity 教程?

java - 为回收站 View 中的项目滑动菜单

jquery - 指定导航栏中所选选项卡的样式

javascript - 如何防止在英特尔 XDK 中输入文本时打开键盘?