[英]JQuery mobile how to prevent the li item to swipe right?
我使用的是我修改過的代碼https://github.com/ksloan/jquery-mobile-swipe-list ,可以正常工作。 但是,代碼有兩個按鈕,向右和向左。 在我的項目中,我的右側只有一個,所以向左滑動即可找到它的確定,但是我找不到如何消除向右滑動的方法,因為我在左側沒有任何按鈕,並且每次滑動都會崩潰方向。
有什么建議嗎?
碼:
$(function() {
function prevent_default(e) {
e.preventDefault();
}
function disable_scroll() {
$(document).on('touchmove','#myPostsList .ui-content', prevent_default);
}
function enable_scroll() {
$(document).unbind('touchmove',' #myPostsList .ui-content', prevent_default);
}
var x;
$(document)
.on('touchstart', '.swipe-delete li > a', function(e) {
console.log(e.originalEvent.pageX);
///// GET ID OF SELECTED POST AND STORE IN A DIV FOR AJAX /////
document.getElementById("myPostIDStorage").value = $(this).attr('data-key');
$('.swipe-delete li > a.open').css('left', '0px').removeClass('open') ;// close em all
$(e.currentTarget).addClass('open');
x = e.originalEvent.targetTouches[0].pageX // anchor point
})
.on('touchmove', '.swipe-delete li > a', function(e) {
var change = e.originalEvent.targetTouches[0].pageX - x;
change = Math.min(Math.max(-100, change), 100); // restrict to -100px left, 0px right
e.currentTarget.style.left = change + 'px';
if (change < -10) disable_scroll() // disable scroll once we hit 10px horizontal slide
})
.on('touchend', '.swipe-delete li > a', function(e) {
var left = parseInt(e.currentTarget.style.left);
var new_left;
if (left < -35) {
new_left = '-100px';
} /*else if (left > 35) {
new_left = '100px'
} */ else {
new_left = '0px';
}
//e.currentTarget.style.left = new_left
$(e.currentTarget).animate({left: new_left}, 200)
enable_scroll();
});
});
確保您擁有所有原始代碼
您需要做的就是稍微改變一下數學
它說change = Math.min(Math.max(-100, change), 100);
更改為change = Math.min(Math.max(-100, change), 0)
將100更改為0表示從左到右移動0像素,因此它不會移動
演示
如果您想讓右側停止向右移動數學運算,但是這次100是加數字change = Math.min(Math.max(0, change), 100)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.