是否可以在Handlebars.js帮助器中使用jQuery创建元素并将事件处理程序附加到它们? 我希望能够使用帮助程序创建活动元素。
例:
Handlebars.registerHelper("button", function(title) { var button = $('').text(title); button.click(function() { alert("Button " + title + " clicked."); }); return $('').append(button).html(); }); 在把手模板中,我实例化按钮,如下所示: {{{button "Click Me!"}}} 我知道这不行,因为jQuery的html()函数`删除’事件处理程序……但是简单地返回按钮显然也不起作用。 Handlebars helpers应该能够返回DOM节点,但这是不可能的,对吧? 我试图返回button.get() ,但没有成功。 有任何想法吗? 你可以做的是在registerHelper之外创建一个函数来调用onClick。 所以代码看起来像这样: Handlebars.registerHelper("button", function (text) { var button = $('').text(text).attr('onclick', 'button_clickEvent()'); return $('').append(button).html(); }); var button_clickEvent = function () { alert("Button " + $(this).text() + " clicked."); }; 既然支持 MutationObserver并且webcomponents-lite是可接受的polyfill ,您可以使用它来获取从Handlebars模板创建的元素。 请参阅我对同一事物的最新问题的答案 。 检测localStorage的任何变化? twitter bootstrap carousel直接链接到特定幻灯片 使用meteor模板助手获取DOM元素带有handlbars的#each之外的变量Emberjs如何绑定-attr一个id使用jQuery对存储在变量中的Div元素进行排序如何使用车把模板显示json对象键和值?Chrome的日期/时间格式问题第二个下拉列表没有调用EveryTime基于First下拉处理把手上的jQuery onClick事件Ember.Select中的绑定动作 Go! Interesting Posts 填充隐藏的表单字段把手不填表前端需要Handlebars.compile。 但是已经与bigcommerce服务器端一起使用的把手按值属性排序选择选项使用jQuery逻辑OR / AND Handlebars.JS助手,多个参数,第一个始终被检查把钥匙放在车把里异步加载把手模板Mustache.js – 显示键而不是值找不到webpack模块:错误:无法解析’jquery’如何在Ember.js RC2中的索引模板中的元素上运行一些JS
在把手模板中,我实例化按钮,如下所示:
{{{button "Click Me!"}}}
我知道这不行,因为jQuery的html()函数`删除’事件处理程序……但是简单地返回按钮显然也不起作用。 Handlebars helpers应该能够返回DOM节点,但这是不可能的,对吧? 我试图返回button.get() ,但没有成功。
有任何想法吗?
你可以做的是在registerHelper之外创建一个函数来调用onClick。 所以代码看起来像这样:
registerHelper
Handlebars.registerHelper("button", function (text) { var button = $('').text(text).attr('onclick', 'button_clickEvent()'); return $('').append(button).html(); }); var button_clickEvent = function () { alert("Button " + $(this).text() + " clicked."); };
既然支持 MutationObserver并且webcomponents-lite是可接受的polyfill ,您可以使用它来获取从Handlebars模板创建的元素。 请参阅我对同一事物的最新问题的答案 。