我正在使用 Sammy.js 来处理路由/应用程序逻辑,并使用 Handlebars.js 来进行模板化。我想设置一些简单的 jQuery 事件来使 UI 动态化(切换元素等)。例如:
$("#availability").click( function(e) {
console.log("hi2");
e.preventDefault();
});
目前,我可以通过将 jQuery 事件放在 Sammy.js 应用程序中来做到这一点,但这感觉非常混乱:
this.get('#q=:query', function(context) {
var query = context.params.query,
loadOptions = {
type: 'get',
dataType: 'json',
data: {query: query},
cache: CACHE_ENABLED
};
context.load("search.php", loadOptions)
.then(function(products) {
context.query = query;
context.products = products.hits.hits;
return context;
})
.partial('/js/templates/search.hb')
.replace('body')
.then( function () {
$("#availability").click( function(e) {
console.log("hi2");
e.preventDefault();
});
});
});
有没有办法在 Handlebars 模板本身或使用 Helper 初始化这些类型的 jQuery 事件?我尝试注册一些自定义助手,但这些事件从未被触发。
我想将“UI Logic”与主应用程序逻辑分开,因为它会使我的主要 Sammy.js 代码变得混乱并且难以阅读。