我想在启动新的ajax请求时中止我正在使用此代码,但它无法正常工作
<?php $urlToFetchPrice = 'getShippingAmount.php'; ?>
var $wk_jq = jQuery.noConflict();
$wk_jq('#weight').on('input', function() {
var $this = $wk_jq(this);
var $element = $wk_jq(this.element);
var previous_request;
if (previous_request) {
previous_request.abort();
}
previous_request = $wk_jq.ajax({
url: "<?=$urlToFetchPrice?>",
data: {
weight: $this.val(),
country: 'BH'
},
type: "POST",
dataType: "json",
format
success: function(data) {
console.log(data);
},
});
});
它没有在控制台中显示任何错误,但没有中止先前的请求。我也试过这个:
beforeSend: function() {
if (previous_request != null) {
previous_request.abort();
}
这也行不通。
答案 0 :(得分:2)
将var previous_request;
移至.on
功能之外。你定义了错误的地方,所以它总是空的。
你也可以console.log
/调试它,检查它是否有价值。
var previous_request;
$wk_jq('#weight').on('input', function() {
//.....
});