javascript - ajax调用阻止锚标记的HREF值后返回false不起作用
问题描述
我有一个这样的链接。
<a class="case" href="/communication/index">Link Name</a>
我有一个处理程序。
$('.case').on('click',function () {
checkCaseIsParked(this);
});
在这个 checkCaseIsParked 方法中,我有 ajax 调用,如果成功,我比较返回值,如果它是真的,那么我想阻止它进入下一个站点,即 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>
推荐阅读
- mongodb - 优化慢速聚合 mongo 查询
- python - 为什么在使用 selenium webdrivers chrome 时出现 __init__.py 问题?
- c# - 如何使用 XmlSerializer 将 XmlText 节点序列化为 CDATA
- python - 通过相似度Python对齐不规则列表列表
- ubuntu-20.04 - Stripe CLI ubutu 安装问题
- php - 检查在字符串中找到的位置是否在锚点中
- awk - 在 SED 转义中替换变量 $
- linux-kernel - 我们可以将分支预测与原子操作一起使用吗?
- javascript - Angular:自定义键盘动作
- angular - z_.subject 不是构造函数 - Angular 11 (Prod)