2012-08-14 131 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