繁体   English   中英

在ajax调用后停止锚标记的HREF值时,返回false不起作用

[英]Return false not working after ajax call to block HREF value of anchor tag

我有这样的链接。

<a class="case" href="/communication/index">Link Name</a>

我有一个处理程序。

 $('.case').on('click',function () {
        checkCaseIsParked(this);
  });

在此checkCaseIsParked方法中,我进行了ajax调用,并在成功后比较返回值,如果为true,则希望阻止它进入下一个站点,即href上的链接。

success: function (result, status, xhr) {
      if (result) { return false; }
            else { return true };
    }

我尝试过返回假但没有运气

return false必须同步发生。 由于您直到响应返回后才知道是否应该进行重定向,因此无论返回什么,都应return false (或preventDefault() ),然后,如果响应表明重定向正常,请手动click()它:

 const checkCaseIsParked = elm => { console.log('processing'); setTimeout(() => { if (elm.id === 'case') { elm.click(); } else { console.log("failed"); } }, 1000); }; $('#case, #case2').on('click', function(event) { if (event.originalEvent.isTrusted) { // event was triggered by user input, not by Javascript checkCaseIsParked(this); event.preventDefault(); } }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a id="case" href="/communication/index">pass</a> <a id="case2" href="/communication/index">fail</a> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM