jquery .live()与'ready'事件

时间:2011-05-04 22:57:10

标签: javascript jquery

我想对正文中所有新添加的div(带有一些类)做一些事情,但我意识到.live()方法不支持'ready'eventType。

例如,此代码有效:

$('.new').live('click', function(){
    $(this).css("background", "black");
}

但用户必须点击div,我想自动执行操作。

我试过这个插件:http://startbigthinksmall.wordpress.com/2011/04/20/announcing-jquery-live-ready-1-0-release/但它没有用(对现有的div进行了操作,但后来添加的则没有)

2 个答案:

答案 0 :(得分:1)

你真的只有两个选择:

  1. 在你可以挂钩的div创建中找到一个适当的事件(听起来你真的找不到合适的事件)
  2. 创建一个计时器事件,用于搜索新的div,然后在它们上运行代码(根据您正在查看的DOM的范围,这会占用大量处理器)。
  3. 2。的例子:

    window.setInterval(function() { $('.new').css("background", "black"); } }, 100);
    

    理想情况下,如果页面很复杂,您可能希望使用比'.new'更快/更具体的选择器,或者在关闭祖先的缓存jQuery引用上执行它。

答案 1 :(得分:0)

难道你不能通过使用纯CSS来实现这一目标吗?

<style type="text/css">
div.new { background: #000; }
</style>

我想如果你想做任何其他类型的影响(淡化颜色,摇晃盒子,等等),这将不起作用。在这种情况下,我会问 - 什么事件会为您的内容带来新的div?我可能会尝试将div更改事件附加到该事件,或者使用.bind().trigger().制作自定义事件。