Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery mobile如何防止li项目向右滑动?_Javascript_Jquery_Jquery Mobile - Fatal编程技术网

Javascript JQuery mobile如何防止li项目向右滑动?

Javascript JQuery mobile如何防止li项目向右滑动?,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我使用的是我修改过的代码,它运行良好。 然而,代码有两个按钮,右边和左边。在我的项目中,我只有一个在右侧,所以向左滑动可以打开它,但我找不到如何消除向右滑动,因为我在左侧没有任何按钮,每次滑动该方向时它都会崩溃 有什么建议吗 代码: $(function() { function prevent_default(e) { e.preventDefault(); } function disable_scroll() { $(document).on('touchmove'

我使用的是我修改过的代码,它运行良好。 然而,代码有两个按钮,右边和左边。在我的项目中,我只有一个在右侧,所以向左滑动可以打开它,但我找不到如何消除向右滑动,因为我在左侧没有任何按钮,每次滑动该方向时它都会崩溃

有什么建议吗

代码:

  $(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();
  });
$(函数(){
功能防止默认值(e){
e、 预防默认值();
}
功能禁用_滚动(){
$(document).on('touchmove','myPostsList.ui content',prevent_default);
}
功能启用_滚动(){
$(document).unbind('touchmove','myPostsList.ui content',prevent_default);
}
var x;
$(文件)
.on('touchstart',')。滑动删除li>a',函数(e){
控制台日志(e.originalEvent.pageX);
/////获取所选帖子的ID并将其存储在AJAX的DIV中/////
document.getElementById(“MyPostedStorage”).value=$(this.attr('data-key');
$('.swipe delete li>a.open').css('left','0px').removeClass('open');//全部关闭
$(e.currentTarget).addClass('open');
x=e.originalEvent.targetTouches[0]。pageX//定位点
})
.on('touchmove','。滑动删除li>a',函数(e){
var change=e.originalEvent.targetTouches[0].pageX-x;
change=Math.min(Math.max(-100,change),100);//限制为-100px左,0px右
e、 currentTarget.style.left=更改+'px';
if(change<-10)disable_scroll()//当我们点击10px水平幻灯片时禁用滚动
})
.on('touchend',')。滑动删除li>a',函数(e){
var left=parseInt(e.currentTarget.style.left);
var new_左;
如果(左<-35){
新_左='-100px';
}/*否则,如果(左>35){
新_左='100px'
}*/其他{
新_左='0px';
}
//e、 currentTarget.style.left=新左
$(e.currentTarget).animate({left:new_left},200)
启用_滚动();
});

}))

确保您拥有所有原始代码

你所需要做的就是稍微改变一下数学

其中表示
change=Math.min(Math.max(-100,change),100)

更改为
change=Math.min(Math.max(-100,更改),0)

将100更改为0意味着从左向右移动0个像素,因此它不会移动

演示

如果您希望右侧停止移动,请反转数学,但这次100是正数值
change=Math.min(Math.max(0,change),100)