使用touchmove事件阻止移动设备上的背景滚动

时间:2014-01-25 12:01:04

标签: javascript jquery

我花了一天的最佳时间试图让它工作,并且是时候推迟专家...我有一个ajax弹出窗口,打开时会阻止身体滚动,并允许滚动在弹出窗口内。类似于点击pinterest中的项目。这在桌面上运行良好。然而,在移动设备上(特别是iphone 4s)它是一个混乱,页面背景滚动但弹出窗口没有。

根据我发现的许多类似问题,我尝试过绑定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,但它没有任何效果。我应该在哪里以及如何防止传播?它应该在我上面的点击事件中吗?

0 个答案:

没有答案