JQM页面加载后未正确启动Touchswipe

时间:2015-03-04 19:28:35

标签: jquery jquery-mobile touchswipe

我正在使用JQM创建混合应用。其中一个页面是我使用Touchswipe的图片库。

如果我直接打开页面,一切正常。但是,如果我通过单击其他页面中的链接导航到此页面,JQM将使用Ajax加载页面,并且swipe未正确初始化。如果我尝试滑动,​​我会收到此错误:

enter image description here

仅当我点击F5并重新加载页面时才有效。

这是我使用的代码:

$(document).on( "pagecontainerbeforeshow", function( e, ui ) {
  Gallery.init();
});

var Gallery = {
  imgContainer: null,
  (...),

  init: function() {
    this.imgContainer = $('#imageContainer');
    (...)
    console.log('This msg shows');

    this.imgContainer.swipe({
        threshold        : 100,
        triggerOnTouchEnd: true,
        allowPageScroll  : "horizontal",
        swipeStatus      : function (event, phase, direction, distance, duration) {
            Gallery.swipe(event, phase, direction, distance, duration)
        }
    });
  },

  swipe: function(...){
    console.log('I only get this by hitting F5');
  }

};

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

事实证明它是加载脚本的顺序。但不是described in this thread

最初我在我的画廊页面加载我的脚本:

// Header
<script src=jquery
<script src=jquery.mobile

//Footer
<script src=jquery.touchSwipe

但是因为JQM使用Ajax检索页面,所以从不加载touchSwipe。因此,通过将其添加到我的索引中,当JQM获取apge时它已经被加载,我仍然需要加载它&#34;在我的画廊页面上,以防万一该应用程序关闭并在该页面上重新打开。