事件单击Handlebars

时间:2013-04-06 20:08:13

标签: events click handlebars.js

使用Handlebars和OpenDatabase我的问题很小。当您点击链接时没有任何反应

我的JS。

  db.transaction(function (tx) {
  tx.executeSql('SELECT * FROM exhibition', [], function (tx, results) {
  var source = document.querySelector("#exhibition-template").innerHTML;
  var data = [];
  template = Handlebars.compile(source);

  for(var i=0;i < results.rows.length; i++) {
      data.push(results.rows.item(i));
  }
  var context = (data);
  if (language == 'pl')
  {
    var html = template({o:context,language_pl:true});
  }else{
    var html = template({o:context,language_en:true});
  }
  document.querySelector("#template").innerHTML = html;  

 }, null);

$(".exl").on("click", function(){
  alert('event click!');
});

});

和我的HTML

  {{#each o}}
  <a href='' class='exl'>{{name_pl}}</a>
  {{/each}}

1 个答案:

答案 0 :(得分:9)

您可能在生成的DOM附加到页面之前绑定事件。因此,您可以等待呈现Handlebars模板(在您的情况下,这是来自tx.executeSql的回调中的平均绑定事件)。或者您可以使用event delegation with jQuery

$(document).on("click", ".exl", function(){
  alert('event click!');
});