jquery添加新元素

Jul*_*yag 0 javascript jquery json

我有这个代码

$.getJSON('check.php', function(data) {
    $.each(data, function(key, val) {  
        $("#badge").append("<tr><td>"+val+"</td></tr><tr><td>-------------------------------------------------------</td></tr>");
    });
});

$("td").mouseover(function () {
    $(this).css("color","red");
});
Run Code Online (Sandbox Code Playgroud)

我的问题是当我将鼠标光标悬停在每个元素上时,它们不会像我预期的那样改变颜色......有人可以解释一下为什么??? 并帮助我如何做正确的事情.

Man*_*eUK 6

事件mouseover不会触发,因为加载时页面上没有元素...所以你需要这样做:

$("#badge").on('mouseover','td', function () {
    $(this).css("color","red");
});
Run Code Online (Sandbox Code Playgroud)

这些on()函数将在badge元素上触发(这是一个猜测的表),并且仅在事件目标为a td且事件发生时触发mouseover.

有一点需要注意 - 这可以很容易地用css完成:

#badge td:hover {
   color: red;
}
Run Code Online (Sandbox Code Playgroud)

谢谢@WTK:

请记住,这on()可以从jQuery 1.7开始.对于旧版本的jQuery和类似的结果使用bind(),delegate()live().