evt.preventDefault() 的反面是什么?

IT技术 javascript jquery preventdefault
2021-02-21 17:52:17

一旦我触发了一个evt.preventDefault(),我怎样才能再次恢复默认操作?

6个回答

根据@Prescott 的评论,相反:

evt.preventDefault();

可能:

本质上等同于'do default',因为我们不再阻止它。

否则,我倾向于向您指出其他评论和答案提供的答案:

如何取消绑定正在调用 event.preventDefault()(使用 jQuery)的侦听器?

如何重新启用 event.preventDefault?

请注意,第二个已被 redsquare 给出的示例解决方案所接受(在此处发布以获取直接解决方案,以防它没有作为重复关闭):

$('form').submit( function(ev) {
     ev.preventDefault();
     //later you decide you want to submit
     $(this).unbind('submit').submit()
});
它确实有效,但我不明白为什么下一个表单提交再次调用该函数,我认为它肯定会解除绑定,但看起来它仅对当前调用解除绑定......我无法解释,确实如此正是我想要的,但这不是我所期望的。
2021-04-20 17:52:17
谢谢!在这个问题上我挠了一阵子(我需要在提交表单之前停下来检查一些事情,在某些情况下不提交,在其他情况下提交)。
2021-05-04 17:52:17
function(evt) {evt.preventDefault();}

和它的反面

function(evt) {return true;}

干杯!

这对我有用,但我想知道是否有人可以更好地解释为什么?
2021-05-10 17:52:17
这不会撤消 preventDefault(),实际上它的作用与省略return true: nothing 一样。
2021-05-11 17:52:17

在从clickjQuery 中事件继续链接之前处理命令

例如: <a href="http://google.com/" class="myevent">Click me</a>

使用 jQuery 预防和跟进:

$('a.myevent').click(function(event) {
    event.preventDefault();

    // Do my commands
    if( myEventThingFirst() )
    {
      // then redirect to original location
      window.location = this.href;
    }
    else
    {
      alert("Couldn't do my thing first");
    }
});

或者干脆运行window.location = this.href;preventDefault();

我知道这并不能直接回答问题,但我很高兴@Bradley 回答了这个问题,因为它解决了我的问题。:)
2021-04-22 17:52:17
是的,但这假设 preventDefault 是一个链接,而不是在文档正文上说 touchmove 。
2021-05-03 17:52:17
这不是问题所问的。
2021-05-03 17:52:17

行 !它适用于点击事件:

$("#submit").click(function(e){ 

   e.preventDefault();

  -> block the click of the sumbit ... do what you want

$("#submit").unbind('click').click(); // the html click submit work now !

});
谢谢!正是我要找的。在此期间进行一些验证后再次单击单击事件。💯
2021-05-01 17:52:17
event.preventDefault(); //or event.returnValue = false;

和它的对立面(标准):

event.returnValue = true;

来源:https : //developer.mozilla.org/en-US/docs/Web/API/Event/returnValue

这很棒,但Firefox不支持
2021-05-19 17:52:17