2

使用 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}}
4

1 回答 1

9

您可能在生成的 DOM 附加到页面之前绑定事件。因此,您可以等待 Handlebars 模板被呈现(在您的情况下,这意味着来自回调的绑定事件tx.executeSql)。或者您可以将事件委托与 jQuery 一起使用:

$(document).on("click", ".exl", function(){
  alert('event click!');
});
于 2013-04-06T20:31:45.210 回答