我有这样的链接。
<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 };
}
我尝试过返回错误但没有运气的情况
答案 0 :(得分:1)
return false
必须同步发生。由于您不知道重定向是否应该在响应返回后才发生,因此无论您是否return false
(或preventDefault()
),都应该click()
(如果响应说重定向正确,请手动{ {1}}:
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>