jquery 如果我在第一页向右滑动并在最后一页向左滑动,移动设备滑动会停止
jquery mobile swipe stops if i swipe right on the first page and and left on the last page
我有 4 个页面,我可以顺畅地在它们之间滑动。但是,当我在之前没有页面的第一页或之后没有页面的最后一页上向右滑动时,我的滑动就会停止。它不会再转到下一页或上一页。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2
/jquery.mobile-1.3.2.min.css" />
</head>
<body>
<div data-role="page" id="home">
HOME
</div>
<div data-role="page" id="about">
ABOUT
</div>
<div data-role="page" id="portfolio">
PORTFOLIO
</div>
<div data-role="page" id="contact">
CONTACT
</div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-
1.3.2.min.js">
</script>
<script>
$(document).on('swipeleft swiperight', function (event) {
if (event.type == 'swipeleft') {
var nextPage = $.mobile.activePage.next('[data-role=page]');
if (nextPage) {
$.mobile.changePage(nextPage, {
transition: "slide"
});
}
}
if (event.type == 'swiperight') {
var prevPage = $.mobile.activePage.prev('[data-role=page]');
if (prevPage) {
$.mobile.changePage(prevPage, {
transition: "slide",
reverse: true
});
}
}
});
</script>
</body>
</html>
问题是您的变量 prevPage 和 nextPage 不是 undefined
您可以检查某些页面 属性,例如
if (prevPage.html() !== undefined)
或将 "data-first" 和 "data-last" 等自定义属性添加到您的第一页和最后一页,并在您的代码中检查它们,如
<div data-role="page" id="home" data-first="true">
....
<div data-role="page" id="contact" data-last="true">
var ap = $("body").pagecontainer("getActivePage");
if (ap.attr("data-first") !== "true") ...
if (ap.attr("data-last") !== "true") ...
我有 4 个页面,我可以顺畅地在它们之间滑动。但是,当我在之前没有页面的第一页或之后没有页面的最后一页上向右滑动时,我的滑动就会停止。它不会再转到下一页或上一页。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2
/jquery.mobile-1.3.2.min.css" />
</head>
<body>
<div data-role="page" id="home">
HOME
</div>
<div data-role="page" id="about">
ABOUT
</div>
<div data-role="page" id="portfolio">
PORTFOLIO
</div>
<div data-role="page" id="contact">
CONTACT
</div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-
1.3.2.min.js">
</script>
<script>
$(document).on('swipeleft swiperight', function (event) {
if (event.type == 'swipeleft') {
var nextPage = $.mobile.activePage.next('[data-role=page]');
if (nextPage) {
$.mobile.changePage(nextPage, {
transition: "slide"
});
}
}
if (event.type == 'swiperight') {
var prevPage = $.mobile.activePage.prev('[data-role=page]');
if (prevPage) {
$.mobile.changePage(prevPage, {
transition: "slide",
reverse: true
});
}
}
});
</script>
</body>
</html>
问题是您的变量 prevPage 和 nextPage 不是 undefined
您可以检查某些页面 属性,例如
if (prevPage.html() !== undefined)
或将 "data-first" 和 "data-last" 等自定义属性添加到您的第一页和最后一页,并在您的代码中检查它们,如
<div data-role="page" id="home" data-first="true">
....
<div data-role="page" id="contact" data-last="true">
var ap = $("body").pagecontainer("getActivePage");
if (ap.attr("data-first") !== "true") ...
if (ap.attr("data-last") !== "true") ...