javascript - Handlebars 模板中的 js 事件

标签 javascript jquery handlebars.js

当我点击一个按钮时,我的模板(有一个表格)就会被输入。

当我双击 Handlebars 模板中表格的一行时,我想执行一个操作。

<body>
<script id="lodgerSearchResult-template" type="text/x-handlebars-template">
    <div class="span12">
    <table id="lodgerSearchResultTable" data-show-header="true" class="table" data-toggle="table" data-height="250">
    <thead>
    <tr>
    <th>#</th>
    <th>Nom</th>
    <th>Date de naissance</th>
    <th>N.A.S.</th>
    <th>N.A.M.</th>
    <th>Immeuble</th>
    </tr>
    </thead>
    <tbody>
       {{#each this}}
       <tr>
         ...
         ...
       </tr>
       {{/each}}
    </tbody>
  </table>
</script>
</body>



<script>
   $('#lodgerSearchResultTable > tbody').dblclick(function () {
    alert($(this).text());
   });
</script>

事实上,什么也没有发生。

编辑:我将双击事件放在ajax成功答案中

$('#lodgerSearch').on('click', function (e) {

    var searchParam = $('#srch-term').val();
    var url = "http://localhost:8080/lodgers/search";
    if (searchParam != "") {
        url = "http://localhost:8080/lodgers/search?searchTemp=" + searchParam;
    }

    jQuery.ajax({
        type: "GET",
        url: url,
        success: function (data, status, jqXHR) {

            $("#lodgerSearchResult").empty().append(template(data));
            // is the line i added
            $('#lodgerSearchResultTable > tbody').dblclick(function () {
                alert($(this).text());
            });

        },
        error: function (jqXHR, status) {
            // error handler
            alert("error " + jqXHR + " -  " + status);
        }
    });
    // e.preventDefault();
});

有没有更简洁的方法来做同样的事情?

最佳答案

我的意思是:

<script>
  alert('table before: ' + String($('#lodgerSearchResultTable')));
  $( document ).ready(function() {
     alert('table after: ' + String($('#lodgerSearchResultTable')));
     $('#lodgerSearchResultTable > tbody').dblclick(function () {
        alert($(this).text());
     });
  });
</script>

其他不明确的解决方案

<script>

  $( document ).ready(function() {

     $('#lodgerSearchResult').dblclick(function (event) {

        console.log(event.target);

        var res_table = $('#lodgerSearchResultTable > tbody');
        if( res_table ) {
            alert(res_table.text());
        }
     });
  });
</script>

关于javascript - Handlebars 模板中的 js 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30927385/

相关文章:

Handlebars 中的 Javascript "any string"正则表达式?

javascript - 如何根据条件渲染组件?

javascript - 在 kendo ui 网格中上下滚动时取消选中复选框

javascript - Kendo UI 验证 - 禁用/启用

ember.js - 使用 Ember 评估 Handlebars 中的两个条件

javascript - Handlebars 助手 - 返回 HTML 而不是文本

javascript - 在 Typescript/React 应用程序中找不到 'node' 的类型定义文件

javascript - 带有显示完整路径的文本框的文件选择器

jquery - li 菜单选项卡以填充页面宽度(平均)

Javascript如何确保显示JQuery .append