Ste*_* K. 8 javascript jquery javascript-events handlebars.js
是否可以在Handlebars.js帮助器中使用jQuery创建元素并将事件处理程序附加到它们?我希望能够使用帮助器创建活动元素.
例:
Handlebars.registerHelper("button", function(title) {
var button = $('<button>').text(title);
button.click(function() {
alert("Button " + title + " clicked.");
});
return $('<div>').append(button).html();
});
Run Code Online (Sandbox Code Playgroud)
在把手模板中,我实例化按钮,如下所示:
{{{button "Click Me!"}}}
Run Code Online (Sandbox Code Playgroud)
我知道这不行,因为jQuery的html()函数`删除'事件处理程序......但是简单地返回按钮显然也不起作用.Handlebars helpers应该能够返回DOM节点,但这是不可能的,对吧?我试图返回button.get(),但没有成功.
有任何想法吗?
您可以做的是在外部创建一个registerHelper名为 onClick 的函数。因此,其代码如下所示:
Handlebars.registerHelper("button", function (text) {
var button = $('<button></button>').text(text).attr('onclick', 'button_clickEvent()');
return $('<div></div>').append(button).html();
});
var button_clickEvent = function () {
alert("Button " + $(this).text() + " clicked.");
};
Run Code Online (Sandbox Code Playgroud)