2012-08-14 48 views
1

我知道我們可以使用$(document).on(event, selector, function)將事件連接到新添加的DOM元素上。但是我怎麼能在這些元素上做一些jQuery。如何在jsRender呈現模板之後操作DOM?

說,我需要添加datepicker到一些input[type=date]。我該怎麼做?

---- -----更新

我的外部模板應該被放置到

<div id="form-output"> 
</div> 

但即使形式顯示在瀏覽器,從模板中的DOM不在上面的div裏面。我如何使用jQuery訪問這些DOM?

+0

從您的更新,你說你呈現模板添加到div,它會顯示在瀏覽器,但在div中不存在?當你說「外部模板」時,它是在渲染前通過ajax加載的東西,如果是的話,你是否在ajax回調中操作返回的內容(添加到div,附加日期選擇器等)? – MrOBrian 2012-08-15 17:55:37

回答

1

jsRender將一切同步。它也沒有任何形式的回調函數,因此與創建自己:

$.when({ dojsRenderStuff }).done(
     function(){ $("input[type=date]").datepicker(); 
    } 
); 

http://api.jquery.com/jQuery.when/

+0

謝謝。但是然後dom元素不在頁面中。請看我的更新。 – Blaise 2012-08-14 16:24:03

+0

jsRender的'.render()'函數是同步的,並返回渲染的結果(這就是爲什麼沒有回調函數)。如果該結果被添加到DOM(例如,使用'.append()'),它可以立即被選中。 – MrOBrian 2012-08-15 17:52:13