无法相互运行两个功能

时间:2014-08-17 12:52:42

标签: javascript jquery get

当我执行此代码时,我收到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);

}

2 个答案:

答案 0 :(得分:2)

本声明:

steam = $.ajax({

将全局变量“steam”重新声明为$.ajax()调用的返回值。换句话说,它覆盖了函数定义。

答案 1 :(得分:2)

我认为这是因为你在函数内覆盖了steam的值。

跟贝弗尔说或者更改变量名。

var steam = $.ajax({

因此它将创建一个单独的局部变量来接受来自ajax的返回值。它不会覆盖全局steam的值。