简体   繁体   中英

Can't Manipulate data inserted from an ajax request in jQuery

After calling the server and turning the data it returns into a table. I insert it into the page using jQuery's .html() syntax. After that the data appears in the page but I can't manipulate it using jQuery.

heres the code:

<html>
<head>
    <title>testJavaScript</title>

    <script type="text/javascript" src="jquery-1.4.2.js"></script>

    <script type="text/javascript">

    function makeTable(data) {

        var htmlOut = "<table id=\"AjaxTable\">";

        for (x in data) {
            htmlOut += "<tr>";
            for (y in data[x]) {
                htmlOut += "<td>"+data[x][y]+"</td>";
            }
            htmlOut += "</tr>";
        }

        htmlOut += "</table>";

        return htmlOut;
    }

    function getValue() {
        return $("#MyText").val()
    }

    $(document).ready(function () {

        $("img").hover(function () { //This dosent work on the data returned from the server
            $(this).hide(1000)
            //$(this).css({'background-color': '#357EC7', 'border': '2px solid #2B60DE'});
        })

        $("#populateDrop").click(function () {
            $.getJSON('http://127.0.0.1:5000/ajaxTest/json?num='+ getValue() +'&callback=?', function(data) {
                $(".result").html(makeTable(data.data));
            })

        })
    })
    </script>
</head>

<body>
    <img src="http://www.sharejs.com/code/windows/light-window/gallery/1-nature.jpg" width="50" height="50" /></br>
    <form>
    <input id="MyText" type="text" value="15" />
    </form>
    <a href="#" id="populateDrop">Populate!</a></br>
    <div class="result"></div>
</body>

You need to use live instead for dynamic data:

$("img").live('hover', function () {
 $(this).hide(1000);
});

More Info:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM