jquery添加新元素

jquery adding new elements

本文关键字:元素 添加 新元素 jquery      更新时间:2023-09-26

我有这个代码

$.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");
});

我的问题是,当我把鼠标光标悬停在每个元素上时,它们不会像我预期的那样改变颜色。。。有人能解释一下为什么吗???帮我做正确的事。

事件mouseover不会激发,因为加载时页面上不存在元素。。。所以你需要这样做:

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

on()函数将在badge元素(这是一个猜测表)上触发,并且仅当事件目标是td且事件是mouseover时才会触发。

不过需要注意的一点是,这可以很容易地用css完成:

#badge td:hover {
   color: red;
}

谢谢@WTK:

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

尝试使用liveon,因为元素是动态加载的。基本上,这些函数的作用是允许您将事件处理程序附加到未来的元素。像这样使用:

$("td").on('mouseover', function(){
    $(this).css({'color':'#F00'})
});