我有一些JavaScript應用更改一些元素和一個函數加載更多這樣的元素。 就像是:委託附加在一個非事件
<ol id="test"><li>click</li></ol>
<script type="text/javascript">
$(function() {
$('OL').delegate("li","click",function(){
$('#test').append('<li>click</li>');
});
</script>
這是代表的基本功能和它的作品。我可以點擊多個<li>
元素。
的問題是,我想,additonaly做到以下幾點:
$(function() {
$('li').css('color','red');
//this is just an example, I don't need to paint the text red :)
});
所有li
不只是在頁面加載加載的。
我還沒有能夠將這些改變附加到任何東西(沒有事件表明我已經加載了上述附件中的元素)。 另外我知道我可以調用$('li').css('color','red');
每次我呼籲追加(或在我真正工作的事情ajax回調)。但我有一個系統,有很多Ajax調用返回不同的HTML和大量的插件和jQuery的工作人員需要執行這些元素。我不想做一個巨大的「刷新」功能,在每一次Ajax成功時都會被調用。
現在我找到的唯一的解決辦法是一切綁定到一個任意事件,做一個觸發器調用該事件對每個Ajax負荷這樣的:
<ol id="test"><li>click</li></ol>
<script type="text/javascript">
$(function() {
$('OL').delegate("li","click",function(){
$('#test').append('<li>click</li>');
$('#test').children().trigger('load');
});
</script>
<script type="text/javascript">
$(function() {
$('OL').delegate("li","load",function(){
$(this).css('color','red');
});
});
</script>
這適用於AFER加載所有元素首先。所以我需要一些額外的代碼,但它作品。
有沒有人有更好的解決方案? 任何方式爲非活動做「活」?
謝謝!
編輯 關於在代碼中的「紅」的例子...我需要做的修改是那些以及很多其他:
('BODY').delegate(".mcs_container","load",function(){
$(this).mCustomScrollbar("vertical",400,"easeOutCirc",1.05,"auto","no","no",0);
}).trigger('load');
所以我覺得只有觸發功能將運行。
EDIT 2 我已經在這裏創造一個工作示例: http://jsfiddle.net/THHNS/5/ 我試圖做到的是要能夠避免$('LI').trigger('focus');
編輯3 我用的是額外的觸發ON時代表應該足夠好。 更新示例: http://jsfiddle.net/THHNS/26/
請,顱,請你仔細閱讀這個問題之前* *給一個答案? 正如我所說的: //這只是一個例子,我並不需要繪製文本紅色:) 什麼,我需要做的是不改變風格。這只是一個簡單的例子。 謝謝。 –
我已經讀過你的問題**非常好**,@Hanoc,對於那些花時間幫助你的人來說,沒有必要站在無禮的邊緣。我想你還沒有考慮過有人可能理解「他不需要製作'color:red',但可能*其他css轉換?」的可能性。 順便說一句,我已經清楚地*在我的回答說,該解決方案將取決於如何「動」的變化將是,這一個簡單的CSS應用我的答案是確定的,複雜的和可變的任務(不同的CSS元素,但它可以擴展到各種類型的變化),事實並非如此。 – Cranio
對不起。我以爲你真的沒看完我的全文,因爲我認爲我的解釋就夠了。這不是我的錯。 (我以前的道歉已經丟失,我希望我不會轉貼他們) –