这是一个我有解决方案的问题,但不是答案。考虑到以下情况:
<p><a href="#" onclick="failure(); return false;">Failure Function</a></p>
如果失败函数失败(某些执行错误),则不会运行return语句,并且将释放单击。结果是重新加载页面,如果链接用作按钮在页面中执行某些操作,则会产生不希望的结果。
我的解决方案是:
<p><a href="#" onclick="try{ failure(); } catch(e) { console.log(e); }; return false;">Failure Function</a></p>
它可以工作,但我必须始终这样做,我不认为它使用事件资源来处理执行失败。而且我觉得它太丑了!我想知道是否存在某种事件或“a”类的设置会阻止它重新加载页面。此外,我不理解标准行为,它就像为对象返回true,null或void,因此它将继续 - 通常这些类型被视为false,因此不会发生任何事情。
有什么想法吗?
答案 0 :(得分:1)
如果该功能失败,它将不会再到达&#34;返回false&#34;,因此它将返回&#39; undefined&#39;默认情况下,对于事件侦听器类似于true。您可以直接将return false用于失败函数。
failure = (e) => {
try{
console.log('');
} catch (error) {
return false;
}
}
<p><a href="#" onclick="failure()">Failure Function</a></p>
我还建议您使用&#39; return undefined&#39;修改代码。你会发现它将它视为真实。 这是codepen https://codepen.io/anon/pen/BJgYdV
另一种解决方案可能是
failure = (e) => {
e.preventDefault();
try{
console.log('');
//redirect the user here
} catch (error) {
//handle the error here
}
}