iCheck jQuery阻止自定义脚本
我使用“iCheck jQuery”来修改复选框的样式。 但是当我添加一个iCheck脚本时 – 我的onlick metod停止工作。 为什么会这样?
$(document).ready(function(){ $('#my_cb').iCheck({ checkboxClass: 'icheckbox_square-blue', radioClass: 'iradio_square-blue', increaseArea: '20%' // optional }); });
我的剧本:
function hide_row_metod() { if(document.getElementById('my_cb').checked){ document.getElementById('row1').style.display = "none"; }else{ document.getElementById('row1').style.display = "inline"; } }
iCheck
注册您可以收听的自定义事件。 我在jsbin上设置了一个工作示例 ,主要区别在于:
$("#my_cb").on("ifChanged", hide_row_metod);
有两个事件: ifChecked
和ifUnchecked
。 如果要捕获所有对复选框的更改,则需要同时监听两者或者只是监听ifChanged
。 当您在hide_row_metod
checked
,这将切换行。
在我的示例中,我使用块元素div#row1
,因此在检查和取消选中后它将以不同的方式呈现( inline
)。
另外:你的方法名称中有一个拼写错误(缺少h
)。
我知道自从提出这个问题已经有一段时间了。 我制作了一个脚本来捕获每个收音机/复选框的onclick属性,并将其附加到相应的iCheck / iRadio。 请记住在iCheck应用后运行它。 在iCheck实现后设置超时或运行它:
$("[class*='icheckbox'],[class*='iradio']").each(function(){ $(this).find("ins").attr("onclick", $(this).find("input").attr("onclick")); });
它可能被iCheck
脚本覆盖。 尝试仅使用jQuery:
$('#my_cb').on('click', function() { $('#row1').css('display', this.checked ? 'none' : 'inline'); });