2017-01-20 7 views
0

フォーカスのスクロールを防ぐJavaScriptコードを書きました。フォーカスが失われた後、どのようにして無効にするのですか?e.preventDefaultおよびe.stopPropagation()の反対側。

フォーカス

e.preventDefault(); 
e.stopPropagation(); 

フォーカスが出

e.preventDefault = false; 
e.stopPropagatio = false; 
+1

それはイベントリスナーをバインド解除しようとする価値があるだろうか?または、ブール値のフラグの後ろにメソッドを配置しますか? – evolutionxbox

+1

元に戻すことはできません。それらを呼び出すことを止めてください。それを修正した – Oriol

+0

@evolutionxbox :)ありがとう! –

答えて

1

フォーカス

$('.form-control').focus(function() { 
      $('#element').on('scroll touchmove mousewheel', function(e){ 
       e.preventDefault(); 
       e.stopPropagation(); 
     }) 
}); 

フォーカスアウト

$('.form-control').focusout(function() { 
     $('#element').unbind(); 
}); 
1

あなたはpreventDefaultstopPropagationを元に戻すことはできません。

イベントのバインドを解除することにより固定

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); 
関連する問題