我写了一些JavaScript代码来防止焦点滚动。在失去焦点后如何禁用它?
焦点
失去焦点
焦点
e.preventDefault();
e.stopPropagation();
失去焦点
e.preventDefault = false;
e.stopPropagatio = false;
e.preventDefault();
e.stopPropagation();
e.preventDefault = false;
e.stopPropagatio = false;
通过取消事件的绑定进行修复。
聚焦
$('.form-control').focus(function() {
$('#element').on('scroll touchmove mousewheel', function(e){
e.preventDefault();
e.stopPropagation();
})
});
$('.form-control').focusout(function() {
$('#element').unbind();
});
你无法撤消 preventDefault
和 stopPropagation
。
只需要停止调用它们,例如:
var stopScroll = true;
element.addEventListener('scroll', function() {
if (stopScroll) {
e.preventDefault();
e.stopPropagation();
}
});
// ...
stopScroll = false;
function listener() {
e.preventDefault();
e.stopPropagation();
}
element.addEventListener('scroll', listener);
// ...
element.removeEventListener('scroll', listener);