2011-05-04 37 views
0

我想对所有新添加的div(有一些类)做一些事情,但是我知道.live()方法不支持'ready'eventType。jquery .live()'ready'事件

例如,此代码的工作:

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

但用户必须点击div和我想automaticaly做的动作。

我想这个插件:http://startbigthinksmall.wordpress.com/2011/04/20/announcing-jquery-live-ready-1-0-release/,但它没有工作(的行动是对现有的div做,但不能在后来添加的)

+0

你如何添加'新添加的divs'?另外,请尝试.bind() – usoban 2011-05-04 23:00:20

+0

为什么不在简单地在添加新div的代码中调用'.css(“background”,“black”)''调用? – jball 2011-05-04 23:00:27

+0

在JSFiddle上发布更多的细节和示例会很有帮助。 – Sparky 2011-05-04 23:00:28

回答

1

你真的只有两个选择:

  1. 找到一个合适的事件发起你可以挂钩的div创建(听起来像你不能找到合适的)
  2. 创建一个计时器事件,寻找新的div,然后在其上运行代码(这可以得到处理器密集型,取决于您正在查看的DOM的范围)。

例2:

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

理想情况下,你会想,如果页面复杂的缓存的jQuery参考使用更快/更具体的选择比'.new'或执行它的接近的祖先。

0

难道你不完成这只是使用普通的CSS?

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

我想,如果你想要做的任何其他类型的影响,将无法正常工作(褪色的颜色,轻摇盒,等等)。在这种情况下,我会问 - 什么事件会为您的内容带来新的div?我可能会尝试附加div更改事件,或者使用.bind().trigger().发起自定义事件。