我有一个这样的链接。
<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 };
}
我尝试返回 false 但没有运气
最佳答案
返回 false
必须同步发生。由于在响应返回之前您不知道是否应该发生重定向,因此无论如何您都应该返回 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>
关于javascript - ajax 调用阻止 anchor 标记的 HREF 值后返回 false 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720832/