好,因此我检查属性值是否为true或false。 下面的代码很好用:
var $artistip = null;
var $chkbx = $('input[name="artist"]');
$chkbx.change( function(){
var $checked = $(this).prop('checked');
if($checked) {
$artistip = $(this).val();
}else {
$artistip = null;
}
});
我想将所有代码转换为一个命名函数,例如:
$djchkbx.change( function() {
getCheckBoxValue($djchkbx,$djtip);});
var $djtip = null;
var $djchkbx = $('input[name="dj"]');
function getCheckBoxValue(thisckbox, $uniqueVariable){
var $checked = $djchkbx.prop('checked');
console.log($checked);
if($checked) {
$uniqueVariable = $(this).val();
console.log('Checked');
console.log($uniqueVariable);
}else {
$uniqueVariable = null;
console.log('Un Checked');
console.log($uniqueVariable);
}
}
问题是我一直在虚假。
原始代码就像一个魅力。 我正在创建的命名函数无法正常工作,只是返回false。
我将大量使用该代码,因为我有多个输入复选框需要检查。 因此,我真的很想创建一个与我的原始代码相同的可重用功能。
答案 0 :(得分:0)
首先,清理您的代码。将所有var
声明移到顶部。然后删除getCheckBoxValue
的函数参数-无论如何还是至少不要以合理的方式使用它们。在change
处理程序中,像这样调用命名函数:
getCheckBoxValue.call(this);
这样,命名函数中的this
将与事件处理程序中的this
相同。
然后,您可以在命名函数中访问复选框元素,如顶部代码段:$(this)
直接将$(this).val()
或null
分配给$djtip
-分配给函数参数没有任何意义。如果由于命名函数在不同的上下文中使用而不能直接分配给$djtip
,则返回该值并在匿名事件处理函数中进行赋值。