iCheck プラグインで奇妙な問題に直面しています。ラジオボタンとチェックボックスのあるフィールドはほとんどありません。それらを美化するためにiCheckプラグインを使用しています。動的チェックボックスとラジオ以外はすべて正常に機能します。
いくつかのラジオ ボタンを動的に追加し、すぐに iCheck 関数を呼び出しても何も起こりません。しかし、firebug から同じ関数を呼び出すと、その機能と iCheck 機能が無線に関連付けられます。どうしたの。
/* Here my code for adding dynamic radios with class red */
$('input[type="checkbox"].red, input[type="radio"].red').iCheck({
checkboxClass: 'icheckbox_minimal-red',
radioClass: 'iradio_minimal-red',
increaseArea: '10%' // optional
});
alert(1);
アラートが実行されているので、私の iCheck コードも問題ないと思います。しかし、奇妙なことに、上記の iCheck コードを firebug から実行すると、ラジオが iCheck 機能にバインドされます。問題がわかりませんでした。
もう 1 つの奇妙なことは、別の無線セットを追加すると、動的に作成された以前の無線セットが iCheck にバインドされ、新しいセットがまだバインドされていないことです。そのため、新しいセットが追加されるたびに、以前のセットが iCheck に結合されます
実際のコード
$('#btn_savefield').click(function () {
var fID, m, opt, cap;
fID = $('#<%= dd_fieldtype.ClientID %>').val();
var fe = $('#hid_fieldedit').val();
m = $('#cb_mandatoryfield').prop('checked');
if (m == false) {
m = 0;
}
else {
m = 1;
}
var s = $('#txt_fieldoptions').val();
opt = s.replace(/\r\n|\r|\n/g, '|');
cap = $('#txt_fieldcaption').val();
var tempParam, Param;
var tempParam = { FieldTypeID: fID, fieldTitle: cap, newoptions: opt, mandatory: m };
var param = JSON.stringify(tempParam);
//alert(fID);
//alert(param);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: param,
url: "postjobs.aspx/getFieldType",
dataType: "json",
error: function (data) {
//alert("error");
//alert(data);
alert(JSON.stringify(data));
},
success: function (data) {
var f = data.d;
//alert(f);
if (data.d != '') {
if (parseInt(fe) >= 0) {
$('#<%= div_formfields.ClientID %>').find('.form-group:eq(' + fe.toString() + ')').replaceWith(f);
}
else {
$('#<%= div_formfields.ClientID %> hr').before(data.d);
}
}
}
});
$('#Modal_newfield').modal('hide');
alert($('input[type="checkbox"].red, input[type="radio"].red').length);
$('input[type="checkbox"].red, input[type="radio"].red').iCheck({
checkboxClass: 'icheckbox_minimal-red',
radioClass: 'iradio_minimal-red',
increaseArea: '10%' // optional
});
});