Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第二页中没有样式的复选框_Javascript_Jquery_Twitter Bootstrap_Datatables - Fatal编程技术网

Javascript 第二页中没有样式的复选框

Javascript 第二页中没有样式的复选框,javascript,jquery,twitter-bootstrap,datatables,Javascript,Jquery,Twitter Bootstrap,Datatables,我使用的是JSF+引导+jQuery数据表的组合,这是一个令人厌烦的问题: 我正在使用一个名为iCheck的插件对我的复选框进行样式化,请参见javascript: function initIcheckbox(){ //iCheck for checkbox and radio inputs $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({ checkboxClass:

我使用的是JSF+引导+jQuery数据表的组合,这是一个令人厌烦的问题:

我正在使用一个名为iCheck的插件对我的复选框进行样式化,请参见javascript:

function initIcheckbox(){
    //iCheck for checkbox and radio inputs
    $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({
      checkboxClass: 'icheckbox_minimal-blue',
      radioClass: 'iradio_minimal-blue'
    });
    $(".iCheck-helper").remove();

}
这里是调用
initCheckBox
的地方:

$(document).ready(function() {
    initSummerNote();
    initDataTable(false);
    initIcheckbox();
    jsf.ajax.addOnEvent(handleAjaxEvents);
});
在datatable jquery的第一页中,每个复选框都按照我希望的样式化,并生成以下html代码:

<div class="icheckbox_minimal-blue" aria-checked="false" aria-disabled="false" style="position: relative;"><input id="j_idt41:example1:7:j_idt54" type="checkbox" name="j_idt41:example1:7:j_idt54" class="minimal" onclick="mojarra.ab(this,event,'valueChange','@this','@this')" style="position: absolute; opacity: 0;"></div>

当我切换到第二页时,复选框没有样式化,请查看第二页中生成的html:

<input id="j_idt41:example1:10:j_idt54" type="checkbox" name="j_idt41:example1:10:j_idt54" class="minimal" onclick="mojarra.ab(this,event,'valueChange','@this','@this')">

正如您所看到的,输入周围的“div”没有被创建,我不知道为什么

如果我切换到第二页并刷新页面,则复选框样式起作用,我注意到我看到的页面已样式化。

原因 jQuery数据表从DOM中删除不可见的元素。这就是为什么运行
initIcheckbox()
时,它只影响第一页元素

解决方案 使用选项定义绘制表格时将调用的函数

$('#示例')。数据表({
“drawCallback”:函数(设置){
//i选中复选框和收音机输入
$('input[type=“checkbox”].minimal,input[type=“radio”].minimal')。i选中({
checkboxClass:'icheckbox_minimal-blue',
无线电课程:“伊拉迪奥蓝”
});
}
});
链接
有关更多示例和详细信息,请参见。

在哪里调用
initIcheckbox()
?当我调用initIcheckBoxI时,我以代码的平静编辑了这篇文章。我假设它在
$(document.ready()
中。如果您的页面是动态加载的,那么元素将在
$(document).ready()之后创建,因此不会应用样式(脚本不适用于它们)。我如何解决这个问题?如果您发布更多的代码,例如datatable结构,会更容易。若你们说你们刷新了页面并看到了新的样式,那个么你们也必须以某种方式保存这个状态。