DataTable Javascript Link not working on 2nd page

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataTable Javascript Link not working on 2nd page相关的知识,希望对你有一定的参考价值。

$(document).ready(function () {
        var otable = $(#tbl-resources).dataTable(
               {
                   bJQueryUI: false, bFilter: true, bPaginate: true, bSort: false, bInfo: true,
                   "oLanguage": { "sSearch": "Click on column to sort / Search all columns for:" }
                   , "sPaginationType": "simple_numbers", "bAutoWidth": false,
                   "sDom": <"row view-filter" <"col-sm-6"<"#ddl-category">><"col-sm-6"<"pull-right"f>>>t<"row view-pager"<"col-sm-7"<"pull-left"l><"pull-right"i>><"col-sm-5"<"pull-right"p>>>,
                   "aoColumns": [
                                 null,
                                 null,
                                 null,
                                { "width": "40%" }
                   ],
                   "buttons": [
                            {
                                extend: collection,
                                text: Select Resource Category,
                                "fnClick": function (nButton, oConfig, oFlash) {
                                    alert(Mouse click);
                                }

                            }

                   ]
               });

        $label = $(<label/>).text(Resource Category:).appendTo(#ddl-category)
        $label.append("&nbsp;&nbsp;&nbsp;&nbsp;");
        //insert the select and some options
        $select = $(<select/>, { class: form-control }).appendTo(#ddl-category)
        @foreach (var item in Model.ResourceCategories)
        {
            <Text>

        $(<option/>).val(@item.Value).text(@item.Text).appendTo($select);

        </Text>


        }
        otable.$(".editResource").on(click, function () {
            var category = $(#ddl-category :selected).val();
            alert(category);
            var overridden = $(this).data(overridden);
            var resourceId = $(this).attr(data-resourceId);
            $.ajax({
                url: @Url.Action("EditResource", "Correspondent"),
                type: "POST",
                data: { selectedId: resourceId, selectedCategory: category, IsOverriddenResource: overridden },
            }).success(function (result) {
                $(#div-edit-modal).html(result);
                $(#edit-modal).modal(show);
            });
        });

    });

My last column in Datatable is link, but only work on the first page, whenever I changed the page number or number shown on page the links were not working.

Solution: Delegated events have the advantage that they can process events from
      descendant elements that are added to the document at a later time. By
      picking an element that is guaranteed to be present at the time the
      delegated event handler is attached, you can use delegated events to
      avoid the need to frequently attach and remove event handlers.

So, instead of using

$(".editResource").click(function () {

need to use dataTables.$()   which is

otable.$(‘.editResource‘).on(click, function () {





以上是关于DataTable Javascript Link not working on 2nd page的主要内容,如果未能解决你的问题,请参考以下文章

前端,Javascript中dataTable中,如何获取datatable中的columns的各项key:value值

Jquery DataTable基本使用

Javascript Datatable 动态数据

javascript 创造DATATABLE JQUERY

javascript Actualizar columna datataBle jquery

javascript Creacion de dataTAble jquery