当我在脚本中使用AJAX时,JQuery停止工作。我究竟做错了什么?

时间:2014-04-03 17:51:55

标签: javascript php jquery ajax json

这是AJAX部分

jsonGamesPlayed() {
        $.ajax({
            url: "jsonGamesPlayed.json",
            dataType: "text",
            success: function(data) {
                var json = $.parseJSON(data);
                $('#main_content').append(json.response.games[0].name);
            }
        });
    }

以下是此函数的名称

$("#nav3").click(function() {
        $('#main_content').fadeTo("slow", 0.0, function() {
            $('#main_content').empty();
            $('#main_content').append('<?php include("/HTML/about3.html")?>');
            jsonGamesPlayed();
        });
        $('#main_content').fadeTo("slow", 1.0);
    });

当我评论整个功能时,网站运行正常。但是当我尝试使用它时,我的所有JQuery / JavaScript都停止工作。我对JavaScript和Jquery btw相当新,所以我一直在研究这个问题。

如果它意味着什么,这里是.json文件......

{
"response": {
    "total_count": 3,
    "games": [
        {
            "appid": 8930,
            "name": "Sid Meier's Civilization V",
            "playtime_2weeks": 629,
            "playtime_forever": 7965,
            "img_icon_url": "fbe80c4743e226f0bf65559c91b12953d4446808",
            "img_logo_url": "2203f62bd1bdc75c286c13534e50f22e3bd5bb58"
        },
        {
            "appid": 221380,
            "name": "Age of Empires II: HD Edition",
            "playtime_2weeks": 47,
            "playtime_forever": 1144,
            "img_icon_url": "109c74df17f9b67ea47d8f01e3d1ec25278b9f73",
            "img_logo_url": "37e9da3f1174891fe38f8fb0206acda8b6bfc729"
        },
        {
            "appid": 113200,
            "name": "The Binding of Isaac",
            "playtime_2weeks": 36,
            "playtime_forever": 38,
            "img_icon_url": "383cf045ca20625db18f68ef5e95169012118b9e",
            "img_logo_url": "d9a7ee7e07dffed1700cb8b3b9482105b88cc5b5"
        }
    ]

}
}

这是我获得AJAX的网站

http://runnable.com/UhY_jE3QH-IlAAAP/how-to-parse-a-json-file-using-jquery

编辑:好的,所以我是javascript的新手,忘了在我的jsonGamesPlayed()函数前添加函数。感谢@Aditya的有用评论。虽然现在一切运行正常,但是从.json文件中调用的数据并没有被附加到div ...是否有些东西我用AJAX做错了?

编辑2:因此,经过一些故障排除后,AJAX永远无法成功完成,

function jsonGamesPlayed() {
        $.ajax({
            url: "jsonGamesPlayed.json",
            dataType: "text",
            success: function(data) {
                var json = $.parseJSON(data);
                $('#main_content').html(json.response.games[0].name);
                alert("I am an alert box!");
            }
        });
    }

我在成功功能中放置了一个警报,该警报从不会在通话中弹出。什么可能出错?

1 个答案:

答案 0 :(得分:0)

这一行就在这里一个问题:

$('#main_content').append('<?php include("/HTML/about3.html")?>');

不能不应该在JavaScript函数中'append' PHP代码。 PHP是一种服务器端语言,它输出HTML以供浏览器解析。 JavaScript是一种客户端语言,一旦页面已经呈现,它就会与那些'HTML'DOM元素进行交互。您要求JavaScript做一些它不知道该怎么做的事情。

话虽如此......你总是load你的html就像这样:

 $('#main_content').load("/HTML/about3.html", function() {
     // do something
 };

或者你可以用传统方式AJAX:

 $.ajax({
    url: "/HTML/about3.html",
    type: "POST", // or "GET"
 }).done(function(the_html) {
     $("#main_content").append($(the_html));
 });