一旦我触发了event . preventdefault(),我如何再次恢复默认操作?
当前回答
正如@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()
});
其他回答
在一个同步流中,你只在需要的时候调用e.f preventdefault ():
a_link.addEventListener('click', (e) => {
if( conditionFailed ) {
e.preventDefault();
// return;
}
// continue with default behaviour i.e redirect to href
});
在异步流中,你有很多方法,但最常见的是使用window.location:
a_link.addEventListener('click', (e) => {
e.preventDefault(); // prevent default any way
const self = this;
call_returning_promise()
.then(res => {
if(res) {
window.location.replace( self.href );
}
});
});
通过使用async-await,可以确保上述流是同步的
function(evt) {evt.preventDefault();}
它的反面
function(evt) {return true;}
干杯!
event.preventDefault(); //or event.returnValue = false;
及其反义词(标准):
event.returnValue = true;
来源: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
你可以在"preventDefault"方法之后使用这个
/ /这里evt。目标返回默认事件(例如:默认url等)
var defaultEvent=evt.target;
//这里我们保存默认事件..
if("true")
{
//activate default event..
location.href(defaultEvent);
}
我使用了以下代码。这对我来说很有效。
$('a').bind('click', function(e) {
e.stopPropagation();
});
推荐文章
- 检测用户何时离开网页的最佳方法?
- 当“模糊”事件发生时,我如何才能找到哪个元素的焦点去了*到*?
- React不会加载本地图像
- 如何将Blob转换为JavaScript文件
- 在另一个js文件中调用JavaScript函数
- 如何在svg元素中使用z索引?
- 如何求一个数的长度?
- 跨源请求头(CORS)与PHP头
- 如何用Express/Node以编程方式发送404响应?
- parseInt(null, 24) === 23…等等,什么?
- 使用jQuery获取第二个孩子
- JavaScript变量声明在循环外还是循环内?
- 元素在“for(…in…)”循环中排序
- 在哪里放置JavaScript在HTML文件?
- 什么时候.then(success, fail)被认为是承诺的反模式?