带有X的jQuery Datatable可编辑不适用于服务器端处理

时间:2013-12-26 05:33:50

标签: javascript jquery express jquery-datatables jeditable

我正在创建一个Node.js应用程序并使用jQuery数据表。我希望我的表字段可以编辑,因此也可以使用Jeditable。

的script.js

$(document).ready(function(){
    $("#example").dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "/my_ajax_url_here",
        "sScrollX": "100%",
        "bScrollCollapse": true,
        "sScrollY":"100%"
    });

    $('.edit').editable('/ajax_url'); //These are static elements on page and are editable as expected
    $('td').editable('/ajax_url'); //These elements are not in source but rendered on page
});

这里我的表是使用数据表服务器端处理动态生成的。没有< td>变得可编辑。但是.edit类的div是可编辑的,它是静态html文件的一部分。我在这里做错了什么?

我的html文件来源

<!DOCTYPE html>
<html lang="en">
   <head>
      <title>Home</title>
      <link rel="stylesheet" href="/stylesheets/style.css">
      <link rel="stylesheet" href="/stylesheets/data_table_bk.css">
      <script type="text/javascript" src="/js/jquery.js"></script><script type="text/javascript" src="/js/jquery_datatable.js"></script><script type="text/javascript" src="/js/jquery_jeditable.js"></script>
   </head>
   <body>
      <header>
         <h1>Data Table</h1>
      </header>
      <div class="container">
         <div class="main-content">
            <table id="example">
               <thead>
                  <tr>
                     <th>Name</th>
                     <th>Field1</th>
                     <th>Field2</th>
                  </tr>
               </thead>
               <tbody></tbody>
            </table>
         </div>
      </div>
      <div class="edit">This is editable</div>
      <script type="text/javascript" src="/js/script.js"></script>
   </body>
</html>

我没有看到源代码中呈现的任何数据,即显示时页面中有多行数据,但它们不在页面的HTML源中。它是否与可编辑的事件无关?

1 个答案:

答案 0 :(得分:3)

显然,这是由于动态加载的元素,Jeditable无法将它的事件附加到它们。通过在jQuery数据表的ajax完成上使用回调来修复它。

"fnDrawCallback" : function() {
        $('td').editable('/ajax_url_here');
}