使用滑动手势来更改多页jQuery移动应用程序中的页面 [英] Using swipe gestures to change pages in multi-page jQuery mobile application
本文介绍了使用滑动手势来更改多页jQuery移动应用程序中的页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法在jQuery Mobile多页面模板移动网站/应用程序上实现滑动手势导航?
Is there a way to implement swipe gesture navigation on a jQuery Mobile multi-page template mobile website/application?
我可以将一个死的简单构造放在一起,如下所示:
I can put together a deadset easy construct as follows:
$("body").bind("swipeleft", function(e) {
$.mobile.changePage( 'about.html', { transition: "slide" });
但是那一刻我开始使用锚标签(多页JQM样式),事件不起作用:
But the moment I start using anchor tags (multi-page JQM style), the event does not work:
$("body").bind("swipeleft", function(e) {
$.mobile.changePage( '#points2', { transition: "slide" });
是否有合适的解决方法或我是否必须放弃多页设置才能使其正常工作?
Is there a suitable workaround for this or would I have to abandon the multi-page setup to get this to work?
推荐答案
工作示例: http://jsfiddle.net/Gajotres/JB22E/3 /
<!DOCTYPE html>
<html>
<head>
<title>Share QR</title>
<meta name="viewport" content="width=device-width,height=device-height,minimum-scale=1,maximum-scale=1"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
</head>
<body>
<div data-role="page" id="article1">
<div data-role="header" data-theme="b" data-position="fixed" data-id="footer">
<h1>Articles</h1>
</div>
<div data-role="content">
<p>Article 1</p>
</div>
</div>
<div data-role="page" id="article2">
<div data-role="header" data-theme="b" data-position="fixed" data-id="footer">
<a href="#article1" data-icon="home" data-iconpos="notext">Home</a>
<h1>Articles</h1>
</div>
<div data-role="content">
<p>Article 2</p>
</div>
</div>
<div data-role="page" id="article3">
<div data-role="header" data-theme="b" data-position="fixed" data-id="footer">
<a href="#article1" data-icon="home" data-iconpos="notext">Home</a>
<h1>Articles</h1>
</div>
<div data-role="content">
<p>Article 3</p>
</div>
</div>
</body>
</html>
JavaScript:
JavaScript:
$(document).on('swipeleft', '.ui-page', function(event){
if(event.handled !== true) // This will prevent event triggering more then once
{
var nextpage = $.mobile.activePage.next('[data-role="page"]');
// swipe using id of next page if exists
if (nextpage.length > 0) {
$.mobile.changePage(nextpage, {transition: "slide", reverse: false}, true, true);
}
event.handled = true;
}
return false;
});
$(document).on('swiperight', '.ui-page', function(event){
if(event.handled !== true) // This will prevent event triggering more then once
{
var prevpage = $(this).prev('[data-role="page"]');
if (prevpage.length > 0) {
$.mobile.changePage(prevpage, {transition: "slide", reverse: true}, true, true);
}
event.handled = true;
}
return false;
});
这篇关于使用滑动手势来更改多页jQuery移动应用程序中的页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文