Jquery Datatables MakeEditable选择/删除错误

Har*_*ess 2 html ajax jquery datatables twitter-bootstrap

我正在使用由HTML和sAjaxSource构成的数据表,然后应用MakeEditable来编辑它.但是遇到问题的是数据表加载的那一刻它会显示错误(结果集中只有一行,因此不确定是否可能是这样).

这是我得到的错误:

TypeError: 'undefined' is not a function (evaluating '$(".table-action-deletelink", oTable).live')
Run Code Online (Sandbox Code Playgroud)

这是我的HTML代码,它位于引导选项卡中.

<button id="btnDeleteRow">Delete</button>
          <div class="tab-pane fade in active" id="info">
            <p>
                <table id="user_info_table">
                        <thead>
                            <tr>
                                <th>User ID</th>
                                <th>First Name</th>
                                <th>Last Name</th>
                                <th>E-mail Address</th>

                            </tr>
                        </thead>

                </table>
            </p>
          </div>
Run Code Online (Sandbox Code Playgroud)

这是数据表:

var oTable2 = $('#user_info_table').dataTable({
            "fnRowCallback": function( nRow, aaData, iDisplayIndex, iDisplayIndexFull) {
                  $(nRow).attr("id",aaData.id);
                  return nRow;
             },
        "bDestroy": true,
        "bAutoWidth": false,
        "bProcessing": true,
        "bDeferRender": true,
        "sPaginationType": "full_numbers",
        "sAjaxSource": '/info/user_info_data/' + sData['id'],
        "aoColumns": [
            { "mData": "id", "sName": "user_id"},
            { "mData": "first_name", "sName": "first_name"},
            { "mData": "last_name", "sName": "last_name" },
            { "mData": "email", "sName": "email" },
        ],
             "fnInitComplete": function() {
                    this.fnAdjustColumnSizing(true);

                    },

        }).makeEditable({
            sUpdateURL: "/info/update_ajax/",
            sDeleteURL: "/info/delete_ajax/",
            fnOnCellUpdated: function(){

            }
        });
Run Code Online (Sandbox Code Playgroud)

以下是来自AJAX调用的JSON响应:

{"aaData":[{"id":"5","first_name":"John","last_name":"Lee","email":"jlee@yahoo.com"}]}
Run Code Online (Sandbox Code Playgroud)

我可以看到数据表上的数据正在显示,但它显示的时刻显示控制台中的错误.我调查了一下,看到它正在寻找一个名为.table-action-deletelink的类,这是用于内联删除,但我不希望这样创建按钮. https://code.google.com/p/jquery-datatables-editable/wiki/DeleteRecord

任何帮助将不胜感激thx.

mai*_*guy 7

嗯,让它在这个Plunker工作.

我唯一改变的是jquery.datatables.editable.js中的.live事件处理程序到.on,因为它们自jquery 1.7以来已被弃用.

所以我转了三次

$(".table-action-editlink", oTable).live("click", function (...
Run Code Online (Sandbox Code Playgroud)

至:

$(".table-action-editlink", oTable).on("click", function (...
Run Code Online (Sandbox Code Playgroud)

也许这会给你错误,因为它与你的错误信息直接相关.

如果您使用的是jquery> = 1.7,请使用我的修补版本的plunker中的jquery.datables.editable.js并尝试一下.

呃,忘记了:当然,实际的ajax调用更新/删除在这个plunker中不起作用,因为我不能在那里进行服务器端处理:-)

更新:如果要突出显示所选行,请将其添加到style.css:

table.dataTable tr.row_selected {
  background-color: #C9DDE1;
}
Run Code Online (Sandbox Code Playgroud)

请注意,这可能会与其他css定义发生冲突.