繁体   English   中英

jQuery添加新元素

[英]jquery adding new elements

我有这个代码

$.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()

由于您的元素是动态加载的on因此请尝试live使用。 这些功能基本上是允许您将事件处理程序附加到将来的元素上。 像这样使用它:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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