evt.preventDefault()的反义词是什么?

| 一旦我开了一个“ 0”,我该如何再次恢复默认操作?     
已邀请:
根据@Prescott的评论,与之相反:
evt.preventDefault();
可能:
从本质上讲,它等同于“默认”,因为我们不再阻止它。 否则,我倾向于将您指向其他评论和答案提供的答案: 如何取消绑定调用event.preventDefault()的侦听器(使用jQuery)? 如何重新启用event.preventDefault? 请注意,第二个示例已被redsquare提供的示例解决方案接受(如果未将其作为重复项关闭,请在此处发布直接解决方案):
$(\'form\').submit( function(ev) {
     ev.preventDefault();
     //later you decide you want to submit
     $(this).unbind(\'submit\').submit()
});
    
function(evt) {evt.preventDefault();}
与之相反
function(evt) {return true;}
干杯!     
要在继续执行jQuery中的
click
事件的链接之前处理命令: 例如:
<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\");
    }
});
或者只是在ѭ10之后运行
window.location = this.href;
    
event.preventDefault(); //or event.returnValue = false;
及其相反(标准):
event.returnValue = true;
资源: https://developer.mozilla.org/zh-CN/docs/Web/API/Event/returnValue     
我必须延迟jQuery中的表单提交才能执行异步调用。这是简化的代码...
$(\"$theform\").submit(function(e) {
    e.preventDefault();
    var $this = $(this);
    $.ajax(\'/path/to/script.php\',
        {
        type: \"POST\",
        data: { value: $(\"#input_control\").val() }
    }).done(function(response) {
        $this.unbind(\'submit\').submit();
    });
});
    
好 !它适用于click事件:
$(\"#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 !

});
    
我建议以下模式:
document.getElementById(\"foo\").onsubmit = function(e) {
    if (document.getElementById(\"test\").value == \"test\") {
        return true;
    } else {
        e.preventDefault();
    }
}

<form id=\"foo\">
    <input id=\"test\"/>
    <input type=\"submit\"/>
</form>
...除非我想念的东西。 http://jsfiddle.net/DdvcX/     
event.preventDefault()
没有相反的方法可以理解为什么您在调用first16ѭ时必须先进行研究。 在幕后,preventDefault的功能实际上是调用return false,这将停止任何进一步的执行。如果您熟悉Javascript的旧方法,曾经有一种流行的方式是使用return false来取消诸如表单提交和使用return true的按钮之类的事件(在jQuery出现之前)。 正如您可能已经根据上面的简单解释所得出的那样:
event.preventDefault()
的相反内容完全没有。您只是不阻止该事件,默认情况下,如果您不阻止该事件,浏览器将允许该事件。 参见以下说明:
;(function($, window, document, undefined)) {

    $(function() {
        // By default deny the submit
        var allowSubmit = false;

        $(\"#someform\").on(\"submit\", function(event) {

            if (!allowSubmit) {
                event.preventDefault();

                // Your code logic in here (maybe form validation or something)
                // Then you set allowSubmit to true so this code is bypassed

                allowSubmit = true;
            }

        });
    });

})(jQuery, window, document);
在上面的代码中,您会注意到我们正在检查allowSubmit是否为false。这意味着我们将阻止使用
event.preventDefault
提交表单,然后执行一些验证逻辑,如果愿意,请将allowSubmit设置为true。 实际上,这是唯一一种与ѭ16相反的有效方法-您还可以尝试删除事件,这些事件本质上可以实现相同的目的。     
这里有用的东西... 首先,我们将点击链接,运行一些代码,然后我们将执行默认操作。使用event.currentTarget可以做到这一点。在这里,我们将尝试在新标签页上访问Google,但是在我们需要运行一些代码之前。
<a href=\"https://www.google.com.br\" target=\"_blank\" id=\"link\">Google</a>

<script type=\"text/javascript\">
    $(document).ready(function() {
        $(\"#link\").click(function(e) {

            // Prevent default action
            e.preventDefault();

            // Here you\'ll put your code, what you want to execute before default action
            alert(123); 

            // Prevent infinite loop
            $(this).unbind(\'click\');

            // Execute default action
            e.currentTarget.click();
        });
    });
</script>
    
这是我以前设置的内容:
$(\"body\").on(\'touchmove\', function(e){ 
    e.preventDefault(); 
});
并撤消它:
$(\"body\").unbind(\"touchmove\");
    
我认为“相反”是模拟事件。你可以用
.createEvent()
遵循Mozilla的示例:
function simulateClick() {
  var evt = document.createEvent(\"MouseEvents\");
  evt.initMouseEvent(\"click\", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById(\"checkbox\"); 
  var cancelled = !cb.dispatchEvent(evt);
  if(cancelled) {
    // A handler called preventDefault
    alert(\"cancelled\");
  } else {
    // None of the handlers called preventDefault
    alert(\"not cancelled\");
  }
}
参考:document.createEvent jQuery有27英镑,因此您可以触发元素上的事件-有时很有用。
$(\'#foo\').bind(\'click\', function() {
      alert($(this).text());
});

$(\'#foo\').trigger(\'click\');
    
jQuery on()可能是对此的另一种解决方案。特别是在使用命名空间时。 jQuery on()只是绑定事件的当前方式(而不是bind())。 off()可以取消绑定。使用命名空间时,可以添加和删除多个不同的事件。
$( selector ).on(\"submit.my-namespace\", function( event ) {
    //prevent the event
    event.preventDefault();

    //cache the selector
    var $this = $(this);

    if ( my_condition_is_true ) {
        //when \'my_condition_is_true\' is met, the binding is removed and the event is triggered again.
        $this.off(\"submit.my-namespace\").trigger(\"submit\");
    }
});
现在,通过使用命名空间,您可以添加多个此类事件,并能够根据需要删除这些事件。.虽然提交不是最好的示例,但单击或按键等操作可能会派上用场。     
您可以在\“ preventDefault \”方法之后使用它 //这里evt.target返回默认事件(例如:defult url等)
var defaultEvent=evt.target;
//这里我们保存默认事件..
if(\"true\")
{
//activate default event..
location.href(defaultEvent);
}
    
您始终可以在脚本中的某些click事件上使用此附件:
location.href = this.href;
用法示例为:
jQuery(\'a\').click(function(e) {
    location.href = this.href;
});
    
这里没有任何解决方案对我有帮助,我这样做是为了解决我的情况。
<a onclick=\"return clickEvent(event);\" href=\"/contact-us\">
函数
clickEvent()
function clickEvent(event) {
    event.preventDefault();
    // do your thing here

    // remove the onclick event trigger and continue with the event
    event.target.parentElement.onclick = null;
    event.target.parentElement.click();
}
    
我使用了以下代码。这对我来说可以。
$(\'a\').bind(\'click\', function(e) {
  e.stopPropagation();
});
    
在我使用以下代码后,该代码为我重新实例化了该事件:
event.preventDefault(); to disable the event.


event.preventDefault = false;
    

要回复问题请先登录注册