本准则不起作用。为什么?

时间:2012-06-05 19:17:40

标签: jquery ajax json

puts.php(JSON)

 {
    "image":[
       {
          "name":'<div id="yes">Hi!</div>'
       }
    ]
 }

process.php

<HTML>
    <HEAD>
        <TITLE>Process</TITLE>
        <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.3.2.min.js"></script>
        <script>
            function loadPage() {

                $(document).ready(function () {

                    $.getJSON('puts.php', function (JSON) {
                        $('#result').empty();

                        $.each(JSON.image, function (i, img) {
                            $('#result').append(img.name)
                        });
                    });
                });
            }

            function loadEfect() {

                $(document).ready(function () {

                    $('#yes').fadeOut();
                    $('#yes').fadeIn();
                });
            }

            function start() {

                loadPage();
                loadEfect();
            }
        </script>
    </HEAD>

    <BODY onLoad="start()">
        <div id="result"></div>
    </BODY>

</HTML>
process.php函数中的

loadEfect()代码不起作用。 (fadeInfadeOut无效)页面加载了loadPage()函数,但loadEfect()函数不起作用。为什么是这样?我在哪里可以搞错?请帮忙。

3 个答案:

答案 0 :(得分:3)

loadEfect无效,因为没有ID yes的元素。

另外,请勿同时使用onload$(document).ready(。只使用一种方法。

function loadPage() {
    $.getJSON('puts.php', function (JSON) {
        $('#result').empty();
        $.each(JSON.image, function (i, img) {
            $('#result').append(img.name)
        });
    });
}

function loadEfect() {
    $('#yes').fadeOut();
    $('#yes').fadeIn();
}

$(document).ready(function(){
    loadPage();
    loadEfect();
}

然后从onLoad="start()"代码中删除<body>

答案 1 :(得分:2)

它无效,因为onload发生在onready之后。尝试这样的事情:

$(function(){
    $.getJSON('puts.php' function(json){
        $.each(json.image, function(i, img){
            $('#result').append(img.name)
        };
    });

    $('#yes').fadeOut();
    $('#yes').fadeIn(); 
});

答案 2 :(得分:1)

只在JSON中使用双引号:

{
    "image": [
        {
            "name": "<div id='yes'>Hi!</div>"
        }
    ]
}

不允许使用单引号字符串。请参阅JSONLint