如何为多个动态生成的DOM元素设置动画?

时间:2009-06-17 22:23:46

标签: jquery dynamic animation hover

这可能有助于了解我的来源。 Jquery nested each problem

我正在使用以下代码向页面添加divs

jQuery("#list").append(
    jQuery("<div>")
        .attr("id", "Entry")
        .html(html)
);

html只是一个包含一些文本和锚点的字符串。

我正在尝试设置新div的动画 - 有多个div的ID为#Entry

这是我的代码:

jQuery("#Entry").hover(function(){  
    jQuery(this)
    .animate({
        width:"50%",
        fontSize: "30px",
        opacity: 0.3,
        borderwidth: "15px"
    }, 500);  
});

以上是jQuery(document).ready(function(){ }函数,如果重要的话。

2 个答案:

答案 0 :(得分:1)

首先,如果您使用该ID添加超过1 <div>,那么您做错了。 id属性应该(必须)在文档中是唯一的。拥有相同id的多个元素将使Javascript变得混乱,因为它不应该发生。这将相当于两个具有相同社会安全号码的人。 :)当涉及元素组时,常见的和最佳的做法是给它们所有的类并以这种方式选择它们。

过去,您应该查看live函数,它可以执行您想要的操作。实质上,当您在文档上运行一段代码时,它正在针对文档的当前状态执行。换句话说,只有在该时间点存在的元素(与提供的选择器匹配)才会绑定到您提供的事件。创建live函数是为了解决这个问题。另一种解决方案是在添加新的<div>后再次运行绑定代码,但这不仅仅是使用支持livemouseover的{​​{1}}一样干净。您需要执行mouseout

的活动

答案 1 :(得分:0)

live()支持所有事件,包括最新jQuery中的自定义事件......