2015-06-18 45 views
0

當我點擊一個按鈕,我的模板誰有一個表是feeded。在手柄模板中的js事件

我想要做一個動作,當我雙擊一個表格的一行在車把模板。

<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> 

其實沒有什麼事情發生。

編輯:我把雙擊事件在阿賈克斯成功答案

$('#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(); 
}); 

有一個更清潔的方式做同樣的事情?

+0

測試代碼用'的console.log($( '#lodgerSearchResultTable'));'在所述第二腳本的beginig塊。看起來這個表格現在還沒有創建。當[$(document).ready()](https://learn.jquery.com/using-jquery-core/document-ready/) – befzz

+0

確定事件處理程序確定我點擊了我的按鈕,模板已加載...點擊了一排桌子......沒有任何事情發生,用你的控制檯日誌,我有一行表...我把控制檯我的代碼關於dblclick和那工作...所以不知道我在哪裏需要把這個代碼...讓它正常工作。 –

回答

1

我的意思是:

<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> 
+0

模板還沒有反饋...就像我說的,模板是int頁面,用戶點擊按鈕搜索某個東西,Ajax調用完成,模板呈現。如果用戶點擊表格的一行,我想要做一個動作:我發佈了大部分代碼:https://jsfiddle.net/4L4b8LLc/ –

+0

好吧,我知道了...將編輯我的帖子...但我發現解決方案醜陋...如果有人在js中有更好的解決方案... –