Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 使用touchmove事件防止手机背景滚动_Javascript_Jquery - Fatal编程技术网

Javascript 使用touchmove事件防止手机背景滚动

Javascript 使用touchmove事件防止手机背景滚动,javascript,jquery,Javascript,Jquery,我花了一天中最好的时间试图让它工作,它的时间听从专家。。。我有一个ajax弹出窗口,当打开时,它可以防止主体滚动,并允许在弹出窗口中滚动。类似于在pinterest中单击项目。这在桌面上非常有效。然而,在手机上(具体来说是iPhone4S),页面背景会滚动,但弹出窗口却不会 根据我发现的许多类似问题,我尝试了许多绑定touchmove事件的变体,但仍然没有成功 我的JS(coffeescript)目前是 $(document).on 'click', 'a.ajax-reveal', (even

我花了一天中最好的时间试图让它工作,它的时间听从专家。。。我有一个ajax弹出窗口,当打开时,它可以防止主体滚动,并允许在弹出窗口中滚动。类似于在pinterest中单击项目。这在桌面上非常有效。然而,在手机上(具体来说是iPhone4S),页面背景会滚动,但弹出窗口却不会

根据我发现的许多类似问题,我尝试了许多绑定touchmove事件的变体,但仍然没有成功

我的JS(coffeescript)目前是

$(document).on 'click', 'a.ajax-reveal', (event) ->
  event.preventDefault()
  modal = $('#opportunity-modal')
  href = $(this).attr('href')
  $('body').css('overflow','hidden')
  $('body').bind 'touchmove', (e) ->
    e.preventDefault()
  $('#opportunity-modal-wrap').css('display', 'block')
  $.get href, (data) ->
    modal.html(data)

这可以正确地防止页面滚动,但我仍然需要允许在弹出窗口中滚动。我在弹出元素上尝试了e.stopPropagation,但没有任何效果。我应该在哪里以及如何防止传播?它应该在上面的“我的点击”事件中吗

是的,我已经看到了,它没有效果,而且已经4年了,所以我认为现在有更好的方法了?可能是因为你的弹出窗口可能有body标签,请勾选no模态内容很好,它是body元素的直接子元素。我的js/css在桌面上运行良好,只是在手机上没有