我正在使用Prestashop 1.6,并且在路径theme/mytheme/js/autoload/shopflores.js
中有一个javascript文件,该文件返回错误。代码:
setTimeout(
$.ajax({
type: 'get',
url: urlformChx,
async: true,
cache: false,
data: {
ajax: true,
token: token,
idcart: idCart,
method: 'getCurrentShop'
},
success: function(resultx) {
console.log(resultx);
obj = JSON.parse(resultx);
r = obj.region;
if (obj.code == '200' && r != null) {
$('#order-opc #uniform-regshopflores > span').text(obj.region);
$("#regshopflores option").each(function() {
if ($(this).text() == obj.region) {
$(this).attr('selected', true);
}
});
$('#order-opc .delivery_option_radio').parent('span').removeClass('checked');
$('#order-opc .delivery_option_radio').removeAttr("checked");
$('#uniform-seltiendaflores > span').text(obj.tienda);
$("#seltiendaflores option").text(obj.tienda);
$.each($("input.delivery_option_radio"), function() {
//console.log($(this));
var idx = obj.carrier + ',';
if ($(this).val() == idx) {
console.log(idx);
$(this).parent('span').addClass('checked');
$(this).attr('checked', 'checked');
}
});
}
}
}), 5000);
在Google Chrome控制台中进行测试会返回此错误消息:
VM667:1未捕获的语法错误:意外的标识符
setTimeout(异步)
(匿名)@ shopflores.js:113
派遣@ jquery-1.11.0.min.js:3
r.handle @ jquery-1.11.0.min.js:3
触发@ jquery-1.11.0.min.js:3
e.event.trigger @ jquery-migrate-1.2.1.min.js:2
(匿名)@ jquery-1.11.0.min.js:3
每个@ jquery-1.11.0.min.js:2
每个@ jquery-1.11.0.min.js:2
触发@ jquery-1.11.0.min.js:3
准备好了@ jquery-1.11.0.min.js:2
K @ jquery-1.11.0.min.js:2
感谢您的帮助!
答案 0 :(得分:0)
setTimeout()
需要一个函数,但是您正在向其提供$.ajax()
对象的jqXHR
调用结果。这样,当JS尝试将对象作为函数调用时,您会收到错误消息。
要解决此问题,请将AJAX逻辑放在您提供的匿名函数中,该匿名函数用作setTimeout()
的参数:
setTimeout(function() {
$.ajax({
// your AJAX call here...
})
}, 5000);