Reputation: 131
newbie here, sorry if I don't understand all the correct ins and outs of posting... I have visited a few pages to try to understand swiping left and right for jquery mobile. I visited this page for my script - http://designicu.com/jquery-mobile-swipe/ for whatever dumb reason, I can't get it to work, at all. I am sure I am missing something small and stupid... Can anyone see my issue? thanks
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<link rel="stylesheet" href="_/css/jquery.mobile.css" />
<script src="_/javascript/jquery.js"></script>
<script src="_/javascript/jquery.mobile.js"></script>
<script>
$('div.ui-page').live("swipeleft", function(){
var nextpage = $(this).next('div[data-role="page"]');
if (nextpage.length > 0) {
$.mobile.changePage(nextpage, "slide", false, true);
}
});
$('div.ui-page').live("swiperight", function(){
var prevpage = $(this).prev('div[data-role="page"]');
if (prevpage.length > 0) {
$.mobile.changePage(prevpage, {transition: "slide",
reverse: true}, true, true);
}
});
</script>
</head>
<body>
<div data-role="page" id="editor">
<div>bucker</div>
</div>
<div data-role="page" id="innovation1">
<div>bunk</div>
</div>
</body>
</html>
Upvotes: 3
Views: 3896
Reputation: 57309
I made you a working example: http://jsfiddle.net/Gajotres/NV6Py/
$(document).on('swipeleft', '[data-role="page"]', function(event){
if(event.handled !== true) // This will prevent event triggering more then once
{
var nextpage = $(this).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', '[data-role="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;
});
And you version is working just fine. I have replaced only js and css initialization with jQuery 1.8.2 and jQuery Mobile 1.2. Here take a look:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script>
$('div.ui-page').live("swipeleft", function(){
var nextpage = $(this).next('div[data-role="page"]');
if (nextpage.length > 0) {
$.mobile.changePage(nextpage, "slide", false, true);
}
});
$('div.ui-page').live("swiperight", function(){
var prevpage = $(this).prev('div[data-role="page"]');
if (prevpage.length > 0) {
$.mobile.changePage(prevpage, {transition: "slide",
reverse: true}, true, true);
}
});
</script>
</head>
<body>
<div data-role="page" id="editor">
<div>bucker</div>
</div>
<div data-role="page" id="innovation1">
<div>bunk</div>
</div>
</body>
</html>
Upvotes: 4