2011-05-04 85 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().發起自定義事件。