Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果“单击”事件失败,如何防止“a”链接释放?_Javascript_Events_Onclick - Fatal编程技术网

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
      }
    }