10

iCheck 仅适用于第一页上的数据表。当我导航到任何其他页面时,它会显示复选框,但它们没有应用 iCheck。此代码有帮助,但不能 100% 工作。

function turn_on_icheck(checkboxClass)
{
    $('input[type=checkbox]').iCheck({
        checkboxClass: checkboxClass
    });
}
$('.data-table').on('page', function() {
    turn_on_icheck();
});

当我转到第二页时,它现在显示一切正常,但是如果我返回之前访问过的页面,则复选框不存在。在我看来,它会导致错误,因为那里已经有一个 iCheck 实例在运行。有没有办法检查是否有一个正在运行?

4

5 回答 5

13

我对 asp.net 网格有同样的问题。请使用on draw.dt 事件,这也将有助于分页和显示菜单

$('.data-table').on('draw.dt', function () {
    turn_on_icheck();
});
于 2014-11-18T06:32:24.207 回答
2

这是一种更简单的方法:

$('.inputClass').iCheck({
        handle: 'checkbox',
        checkboxClass: 'icheckbox_flat-blue'
    });

来源 祝你好运

于 2017-03-21T14:16:53.763 回答
1

当数据表刷新值时,会呈现新的输入,并且输入需要再次应用 icheck 函数。

$(document).ajaxComplete(function() {
    $('input[type=checkbox]').iCheck({
        checkboxClass: checkboxClass
    });
});
于 2015-02-12T14:45:02.127 回答
1

这样做(在“drawCallback”函数中编写代码):

...
'drawCallback': function(settings) {
     $('.i-checks').iCheck({
         checkboxClass: 'icheckbox_square-green'
     });
 },
 ...

它解决了我的问题。

于 2018-06-28T05:04:29.007 回答
0

这就是我解决它的方法......你应该给 icheck 一些时间,直到它在调用 DataTable 函数之前完成......使用 JQUERY 的 when 函数

function Typer(callback)
{    
    if ($("input.flat")[0]) 
    {
        $('input.flat').iCheck({
            checkboxClass: 'icheckbox_flat-green',
            radioClass: 'iradio_flat-green'
        });
    }
}


function enableDataTableMain()
    {
    var table = $('#tableWithData').DataTable({
     "aoColumnDefs": [
        {
            'bSortable': false,
            'aTargets': [0]
        } //disables sorting for column one
    ],
    "tableTools": {
        "sSwfPath": "swf/copy_csv_xls_pdf.swf"
    }});                    
    var tt = new $.fn.dataTable.TableTools( table );
    $( tt.fnContainer() ).insertBefore('div.functionDiv');
}


    $(document).ready(function() {
    $.when( Typer() ).done(function() {
       enableDataTableMain();
    });
});
于 2016-08-24T09:18:29.977 回答