当我执行此代码时,我收到Uncaught TypeError: object is not a function
并且只运行status
。有什么问题?
$(document).ready(function() {
steam('status', 60000);
steam('currently-playing', 60000);
});
function steam(mode, repeat) {
// VARIABEL
var checked = true;
// HÄMTA
steam = $.ajax({
url: 'ajax-get/steam/' + mode.replace('-', '_'),
type: 'GET',
beforeSend: function() {
$('#steam-' + mode).html('<div class="color-blue">Hämtar data från Steam API - var god vänta</div>');
},
success: function(s) {
checked = false;
$('#steam-' + mode).html(s);
},
error: function() {
$('#steam-' + mode).html('<div class="color-red">Kunde inte hämta. Var god försök igen</div>');
}
});
setInterval(function() {
if(checked == false) {
// HÄMTA
steam = $.ajax({
url: 'ajax-get/steam/' + mode.replace('_', '-'),
type: 'GET',
success: function(s) {
$('#steam-' + mode).html(s);
},
error: function() {
$('#steam-' + mode).html('<div class="color-red">Kunde inte hämta. Var god försök igen</div>');
}
});
}
}, repeat);
}
答案 0 :(得分:2)
本声明:
steam = $.ajax({
将全局变量“steam”重新声明为$.ajax()
调用的返回值。换句话说,它覆盖了函数定义。
答案 1 :(得分:2)
我认为这是因为你在函数内覆盖了steam
的值。
跟贝弗尔说或者更改变量名。
var steam = $.ajax({
因此它将创建一个单独的局部变量来接受来自ajax的返回值。它不会覆盖全局steam
的值。