【问题标题】:How to check an iCheck on the second page如何在第二页检查 iCheck
【发布时间】:2015-09-30 14:47:48
【问题描述】:

我有以下代码:

$("#add-new-size-grp").click( function (event) {
    event.preventDefault();
    $.ajax({
        type: "get",
        url:"ajax-get-sizes.php",
        success: function(result){
            $("#sizegrp-table").html(result);
            var sizegrpSizesTable = $('#tbl-sizegrp-sizes').DataTable();
            //iCheck for checkbox and radio inputs
            $('input[type="checkbox"]').iCheck({
              checkboxClass: 'icheckbox_polaris',
              radioClass: 'iradio_polaris'
            });

            $("#modalNewSizeGrp").modal();
        }
    });
});

简而言之,它检索一大块数据并从中形成一个 jQuery DataTable。然后将其返回并推送到调用页面中的 DIV 中。

$('input[type="checkbox"]').iCheck({ 开头的部分使用iCheck 插件来格式化表格第一列的复选框。

这对于第一页数据非常有效。但是,当用户移动到另一个页面或更改页面长度时,新显示的复选框不会应用格式。

我已经研究过使用page 事件来应用格式,但无法使其正常工作。我试过的代码如下:

$('#tbl-sizegrp-sizes').on( 'page.dt', function () {
    var dtable = $('#tbl-sizegrp-sizes').DataTable();
    var info = dtable.page.info();
    $('input[type="checkbox"]').iCheck({
      checkboxClass: 'icheckbox_polaris',
      radioClass: 'iradio_polaris'
    });

});

我做错了什么?

-- 编辑--

根据要求,这里有一个fiddle 来演示这个问题。注意第 1 页的样式复选框,然后切换到任何其他页面。

【问题讨论】:

标签: jquery css datatables icheck


【解决方案1】:

原因

jQuery DataTables 从 DOM 中移除不可见元素。这就是为什么当您运行 iCheck() 时它只会影响首页元素。

解决方案

使用drawCallback 选项定义绘制表格时将调用的函数。

var sizegrpSizesTable = $('#tbl-sizegrp-sizes').DataTable({
   'drawCallback': function(settings){
      //iCheck for checkbox and radio inputs
      $('input[type="checkbox"]').iCheck({
         checkboxClass: 'icheckbox_polaris',
         radioClass: 'iradio_polaris'
      });
   }
});

演示

有关代码和演示,请参阅 this jsFiddle

链接

有关更多示例和详细信息,请参阅jQuery DataTables: Custom control does not work on second page and after

【讨论】:

  • 一键导航似乎有bug
  • 再看一遍,点击导航按钮 2,然后尝试点击任意导航按钮
  • 再看一眼,我还发现当您单击另一个导航按钮时,复选框不再可以选中
  • @indubitablee,它适用于每个现代浏览器,尝试使用其他浏览器看看。
  • 我目前使用的是最新版本的 chrome。也许你忘了更新你的 jsFiddle 链接?现在它指向:jsfiddle.net/m4x0u18a/4。我不是要沉没你的船,我只是在问,因为我真的想知道是否有办法在 dataTable 插件中应用样式
猜你喜欢
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 2016-03-11
相关资源
最近更新 更多