获取错误未捕获TypeError:string不是函数

时间:2013-04-25 20:14:46

标签: javascript jquery

我在这里使用这段代码来浏览一个我正在愚弄的网页:

$(function() {
    console.log('Here');
    $.ajax({
        type: 'POST',
        url: 'http://api.bf3stats.com/pc/playerlist/',
        data: {
            players: ['xxx', 'xxxx', 'x']
        },
        success: function(data) {
            loadData(data, 'x', 'f');

        }
    })
})

function loadData(data, uname, $) {
    $('#fWins').text("135");
}

但是一旦遇到loadData函数,我就会收到错误:

Error: Uncaught TypeError: string is not a function

我绝对不知道为什么这会给我这么多问题。提前谢谢!

谢谢问题是我使用$,我不经常使用jQuery,仅适用于我需要跨浏览器兼容性的时候。多亏了这个,将在计时器启动时标记已回答

3 个答案:

答案 0 :(得分:2)

这是因为您使用$作为loadData中最后一个参数的参数名称。这意味着当你看到$ $('#fWins').text("135");而不是使用jQuery时,你的函数将使用你传递给函数的字符串“f”,所以它基本上是这样做的:"f"('#fWins').text("135");要修复它,请更改:

function loadData(data, uname, $) {

类似

function loadData(data, uname, lastParam) {  

答案 1 :(得分:1)

试试这个:

$(function () {
    console.log('Here');
    $.ajax({
        type: 'POST',
        url: 'http://api.bf3stats.com/pc/playerlist/',
        data: {
            players: ['xxx', 'xxxx', 'x']
        },
        success: function (data) {
            loadData(data, 'x', 'f');

        }
    });
});

function loadData(data, uname, param) {
    console.log('Here too..');
    $('#fWins').text("135");
}

FIDDLE (在控制台中,您将获得此处&amp; 此处...... ,没有任何错误) < / p>

答案 2 :(得分:0)

$试图将该变量作为函数传递 所以,如果你有一个声明了传递字符串的函数,它将触发它

你想要$那里的任何理由?