JavaScript机制保持到一个值从用户的行动
-
18-09-2019 - |
题
我已经创建了一个JavaScript目的举行一个价值由用户设置的检查checbox在 颜色框.
我是相对较新的以能力和编程JavaScript"正确的方式",并想要确保以下机构,用于拍摄的用户 检查行动 是一个最佳做法JavaScript一般。此外,由于我雇用,这是没有一个简单的方法,以保住他们的行动,我应该利用?
function Check() {
this.Checked = false;
}
obj = new Check;
$(document).ready(function() {
$('.cboxelement').colorbox({ html: '<input id="inactivate" type="checkbox" name="inactivatemachine"> <label for="inactivate">Inactivate Machine</label>' });
$(document).bind('cbox_cleanup', function() {
obj.Checked = $.fn.colorbox.getContent().children('#inactivate').is(':checked');
});
$(document).bind('cbox_closed', function() {
if ($($.fn.colorbox.element()).attr('id').match('Remove') && obj.Checked) {
var row = $($.fn.colorbox.element()).parents('tr');
row.fadeOut(1000, function() {
row.remove();
});
}
});
});
解决方案
个人而言,我的值(一个或多个)附接至直接使用jQuery的内置data()
方法的对象。我真的不完全知道你正在尝试做的,但你可以,例如,附加价值在DOM以备后用一个“命名空间”。
$('body').data('colorbox.checked',true);
然后你会被后来的检索值:
var isChecked = $('body').data('colorbox.checked');
您运行任何jquery对象上data()
方法。我会说这是最好的做法尽可能的jQuery去。
其他提示
您可以捕捉的关闭,避免了全球性数据,并使其更容易有多个检查的参考。然而,在这种情况下,它似乎被绑定到单一颜色框,所以我不知道,你可以有效地有多个实例。
function Check() {
this.Checked = false;
var obj = this; // 'this' doesn't get preserved in closures
$(document).ready(function() {
... as before
)};
}
var check = new Check; // Still need to store a reference somewhere.
$($.fn.colorbox.element())
是多余的。$.fn.colorbox.element()
已经是一个jquery元。这是共同使用(例中我看到,至少)在前面加一个
$
变量引用jquery的要素。
所以,var $rows = $.fn.colorbox.element().parents('tr');
提供即时的想法,这是引用jquery件(s)。我害怕
fadeOut
不会的工作中的行IE6(如果我记忆正确的).你应该能隐藏所有内容<tr>
之前去除它。
可以帮不在"简化"事情,因为我不知道彩盒最好的使用。
不隶属于 StackOverflow