Я использую Sammy.js для обработки логики маршрутизации/приложений и Handlebars.js для создания шаблонов. Я хотел бы настроить несколько простых событий jQuery, чтобы сделать пользовательский интерфейс динамическим (переключение элементов и т. д.). Например:
$("#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();
});
});
});
Есть ли способ инициализировать эти типы событий jQuery внутри самого шаблона Handlebars или с помощью помощника? Я пытался зарегистрировать некоторые пользовательские помощники, но события никогда не запускаются.
Я хотел бы отделить «Логику пользовательского интерфейса» от основной логики приложения, поскольку она загромождает мой основной код Sammy.js и затрудняет его чтение.