Javascript 如果“单击”事件失败,如何防止“a”链接释放?
这是一个我有办法解决的问题,但没有答案。考虑到以下情况:Javascript 如果“单击”事件失败,如何防止“a”链接释放?,javascript,events,onclick,Javascript,Events,Onclick,这是一个我有办法解决的问题,但没有答案。考虑到以下情况: <p><a href="#" onclick="failure(); return false;">Failure Function</a></p> 如果failure函数在执行错误时失败,return语句将不会运行,单击将被释放。结果是重新加载页面,如果链接用作按钮在页面中执行某些操作,则这是不希望出现的结果 我的解决办法是: <p><a href="#" onclic
<p><a href="#" onclick="failure(); return false;">Failure Function</a></p>
如果failure函数在执行错误时失败,return语句将不会运行,单击将被释放。结果是重新加载页面,如果链接用作按钮在页面中执行某些操作,则这是不希望出现的结果
我的解决办法是:
<p><a href="#" onclick="try{ failure(); } catch(e) { console.log(e); }; return false;">Failure Function</a></p>
它可以工作,但我必须一直这样做,我不认为它使用事件资源来处理执行失败。我觉得这很难看!我想知道a类是否有某种事件或设置会阻止它重新加载页面。此外,我不理解标准行为,这就像为对象返回true、null或void,因此它将继续-通常这些类型被视为false,因此不会发生任何事情
有什么想法吗?如果该函数失败,它将不再返回返回false的值,因此默认情况下它将返回“undefined”,这与事件侦听器的true类似。您可以在failure函数中直接使用return false
failure = (e) => {
try{
console.log('');
} catch (error) {
return false;
}
}
<p><a href="#" onclick="failure()">Failure Function</a></p>
因此,您希望链接仅在验证后执行?那么,为什么不从一开始就在函数调用中使用preventDefault取消事件呢?为什么还要为return false而烦恼呢?听起来很有趣,你为什么不举个例子来回答呢@messerbill:我根本不想执行链接,只想执行函数。答案是正确的,但仍取决于尝试。。。接住我将研究另一种方法。所以“未定义”被认为是真实的,有趣的。。。
failure = (e) => {
e.preventDefault();
try{
console.log('');
//redirect the user here
} catch (error) {
//handle the error here
}
}