使用Handlebars.js助手用jQuery创建活动元素?

是否可以在Handlebars.js帮助器中使用jQuery创建元素并将事件处理程序附加到它们? 我希望能够使用帮助程序创建活动元素。

例:

Handlebars.registerHelper("button", function(title) { var button = $('

在把手模板中,我实例化按钮,如下所示:

 {{{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模板创建的元素。 请参阅我对同一事物的最新问题的答案 。