有没有办法传递函数绑定到jQuery模板引擎? http://api.jquery.com/tmpl/
如果我创建没有模板的HTML,我会这样做:
jQuery("<a>link</a>").click(function(){alert('hi!')}).appendTo( "#forms_container" );
如何使用jQuery模板执行此操作?
------------ EDIT 我在这里找到了一些图书馆 http://knockoutjs.com/documentation/template-binding.html
并且看起来像jQuery.live()
是否还有其他方法可以将函数绑定到模板,或者这种方式主要用作默认值?
----------- EDIT 好吧,那就让它成为.delegate。我认为对于我的小任务来说,这足够了,而不会增加Knockout的复杂性
答案 0 :(得分:4)
与Ian相似,但在实施方面略有不同:
jQuery('#forms_container').delegate('a', 'click', function() {
//Click event, with context (faster)
});
这意味着无论发生什么变化,forms_container中的所有链接都将具有该click事件。这与Ian(完全合法)使用live
的不同之处在于它具有上下文,因此事件不需要一直冒泡。如果你给它上下文,你可以使用live
(从1.4开始)完成同样的事情,但我更喜欢delegate
的语法。
答案 1 :(得分:0)
通过(类或类似的或基于父容器)为您的链接标识它。然后使用.live
<script id="movieTemplate" type="text/x-jquery-tmpl">
<div id="xyz"><a class="tmplClick">${link}</a> </div>
</script>
然后:
$('a.tmplClick').live('click',function(){
alert('clicked in template');
});