我正在使用JQM创建混合应用。其中一个页面是我使用Touchswipe的图片库。
如果我直接打开页面,一切正常。但是,如果我通过单击其他页面中的链接导航到此页面,JQM将使用Ajax加载页面,并且swipe
未正确初始化。如果我尝试滑动,我会收到此错误:
仅当我点击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');
}
};
非常感谢任何帮助!
答案 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;在我的画廊页面上,以防万一该应用程序关闭并在该页面上重新打开。