在 event.prenventdefault 之后将事件恢复为 jquery 中的默认操作

restore event to default action in jquery after event.prenventdefault

我使用 this answer 来禁用 arrowpgdown 以及 pgup 键操作(滚动)。但我需要在 jquery 代码中调用 event.preventDefault() 后将此键的操作设置为默认值(滚动)。

我该怎么做。

如果没有更好的细节就很难回答,但如果我正确理解你拥有的东西,如果你有可以跟踪状态的东西,当你希望阻止这种行为并让它失败时,你可以使用 preventDefault:

伪代码:

var state = {
   blockArrows: true;
}

$('#my_widget').keydown(function(e) {
  if(state.blockArrows) {
    e.preventDefault();
  }
  // ...else allow the event to do its normal thing....///
});

要反转preventDefault(),需要解绑原来的action,然后重新调用。

$(document).keydown(function(e) {
    e.preventDefault()
    // Do stuff until you need to recall the default action
    $(this).unbind('keydown').keydown()
})

How to unbind a listener that is calling event.preventDefault() (using jQuery)?