我花了一天的最佳时间试图让它工作,并且是时候推迟专家...我有一个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,但它没有任何效果。我应该在哪里以及如何防止传播?它应该在我上面的点击事件中吗?