我有以下代码:
$(document).bind('panelopen', function (e, data) {
$('#ReleaseTransactionsPageContent').on('touchstart touchmove', function(e){
e.preventDefault();
});
});
它的功能是防止面板打开时滚动。在面板关闭时,我想取消绑定preventdefault并重新启用touchstart和touchmove。
$(document).bind('panelclose', function (e, data) {
$('#ReleaseTransactionsPageContent')....not sure what to put here
});
答案 0 :(得分:1)
使用.off()删除事件处理程序。
$('#ReleaseTransactionsPageContent').off('touchstart touchmove'); //remove previous attached handler
$('#ReleaseTransactionsPageContent').on('touchstart touchmove',function(){ //attach new handler
//code here
});
答案 1 :(得分:0)
$(document).bind('panelclose', function (e, data) {
$('#ReleaseTransactionsPageContent').off('touchstart touchmove');
});
答案 2 :(得分:0)
假设您使用的是jQuery> = 1.7,请使用.on()和.off()。您可以使用名称间隔事件名称来注册/取消注册处理程序,因为只需调用.off('touchstart touchmove')
即可删除所有其他touchstart
和touchmove
事件,这些事件可能已被其他人注册
$(document).on('panelopen', function (e, data) {
$('#ReleaseTransactionsPageContent').on('touchstart.ReleaseTransactionsPageContent touchmove.ReleaseTransactionsPageContent', function (e) {
e.preventDefault();
});
});
$(document).bind('panelclose', function (e, data) {
$('#ReleaseTransactionsPageContent').off('touchstart.ReleaseTransactionsPageContent touchmove.ReleaseTransactionsPageContent')
});
答案 3 :(得分:0)
使用off
method删除事件处理程序:
$('#ReleaseTransactionsPageContent').off('touchstart touchmove');
答案 4 :(得分:0)
<script>
// Get touch move event from IOS
document.ontouchmove = function (event) {
if (!event.elementIsEnabled)
event.preventDefault();
};
// Get touch move event from IOS
function enableOnTouchMove(event) {
event.elementIsEnabled = true;
};
</script>
然后在你想要的每个标签上启用ontouchmove。即:
<div ontouchmove="enableOnTouchMove(event)" id="listing">