一旦我触发了event . preventdefault(),我如何再次恢复默认操作?
当前回答
你可以在你的脚本中使用这个附加到一些点击事件:
location.href = this.href;
用法示例如下:
jQuery('a').click(function(e) {
location.href = this.href;
});
其他回答
正如@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()
});
这段代码为我重新实例化事件后,我已经使用:
event.preventDefault(); to disable the event.
event.preventDefault = false;
这里有一些有用的东西……
首先,我们将单击链接,运行一些代码,然后执行默认操作。这可以使用event实现。看看吧。在这里,我们将尝试在一个新选项卡上访问谷歌,但在我们需要运行一些代码之前。
<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");
在jQuery中处理一个命令,然后从点击事件继续链接:
例:<a href="http://google.com/" class="myevent">点击我</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()之后;