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 に答える