【问题标题】:Animate something that doesn't exist on page load为页面加载时不存在的内容设置动画
【发布时间】:2013-02-02 02:49:31
【问题描述】:

Ajax 设置一个场景,然后 jQuery 将其播放出来。该元素在页面加载之前不存在。我需要一种方法来对动态添加到页面的内容进行动画处理。

类似:

$(document).on("animate", "div", function (){});

这样的事情存在吗?

好的,似乎有些混乱,我正在使用 queue() 这不是创建它或在我返回 ajax 后做某事的问题。在 Ajax 之后,程序构建并插入具有特定 ID 的 imgs 到页面中。我需要重新加载 dom 或其他东西,以便我可以为插入到页面中的对象设置动画。

我已经在 J​​Sfiddle 上测试了动画并且它们工作正常,所以我唯一的假设是因为这些对象不是初始 dom 的一部分,它们不会动画,因此我需要重新加载 DOM。

【问题讨论】:

  • 所以在你创建它的时候给它动画。你面临什么问题?
  • 实际上根本没有动画。这有效jsfiddle.net/emFpw/3 所以我的假设是因为元素是在页面之后创建的,所以 DOM 需要重新加载。

标签: javascript jquery dom jquery-animate


【解决方案1】:

您所要做的就是使用适当的功能对其进行动画处理,例如:

$("#nonexistent-element").animate({
  right: '10%'
});

一旦存在#nonexistent-element,它就会动画,无论它在页面加载时是否存在。仅当您想将事件绑定到页面加载时不存在的元素时才需要使用 on()。

工作 jsfiddle:http://jsfiddle.net/emFpw/26/

【讨论】:

  • 我有一些几乎相同的东西,它根本无法运行。我将其全部重建为在页面加载之前将宠物留在页面上,然后将图像放置在其中。不过我会再试一次。
【解决方案2】:

当通过 Ajax 加载内容时,我们需要绑定事件以使其工作,或者我们可以使用 jQuery 的 live/on 方法,根据我们的需要将事件绑定到父/文档。

两种技术中的任何一种,即在加载内容时绑定或使用 live/on 都应该导致事件被触发。

例如:插入内容后,我们可以按照上述答案中 Lrdwhyt 的建议进行操作。 或者我们在加载之前绑定元素,就像

$("#non-existing-elem").live("click",function(){
     $(this).animate({right:'10'});
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 2011-08-15
    • 2019-12-06
    • 1970-01-01
    • 2015-07-29
    • 2010-12-05
    相关资源
    最近更新 更多