允许touchmove为子元素

mha*_*ton 1 html javascript jquery jquery-mobile

我想禁用我的整个jqm网络应用程序的滚动,但如果你尝试滚动某个类的div,那么允许滚动

所以我的滚动div .infooverflow:scroll应用于它,我有这个脚本试图检测你是否正在触摸它

$('.info').bind('touchstart', function (e) {
    if (e.type == "touchstart") {
       return true; 
    } else {
        event.preventDefault();
    }
});
$(document).bind('touchmove', function () {
    event.preventDefault();
})
Run Code Online (Sandbox Code Playgroud)

现在,关闭文档的滚动,但当我尝试滚动我的信息div时,它不会滚动.

现在我已经看到了一些围绕这个想法的帖子,但主要是要固定一个对象的位置,这样当文档滚动时,它就会停留在同一个地方.

kal*_*ley 6

这就是我一直在做的事情:

$(document).on('touchmove', function(ev) {
 if ( !$(ev.target).closest('.is-scrollable').length ) {
    ev.preventDefault();
  }
})
Run Code Online (Sandbox Code Playgroud)

在这种情况下.is-scrollable,你的班级.info在哪里?

编辑:修复可滚动div顶部和底部的滚动:

$('.is-scrollable').on('touchstart', function() {
    var el = $(this);
    if ( el.scrollTop() <= 0 ) {
      el.scrollTop(1);
    }
    if ( el.scrollTop() >= el[0].scrollHeight ) {
      el.scrollTop(el[0].scrollHeight - 1);
    }
});
Run Code Online (Sandbox Code Playgroud)