我正在尝试编写一个简单的函数来检查具有指定类的复选框的负载。我想使用一个变量来确定是否已经点击了check all div但是变量总是未定义:
var CCT;
$("#filterTitleTopic").click(function () {
console.log(CCT);
if (CCT == undefined || CCT == null || CCT == 2) {
$('input.topic').prop('checked', false);
var CTT = 1;
console.log("unchecking boxes...");
}
else if (CTT == 1) {
$('input.topic').prop('checked', true);
var CTT = 2;
console.log("checking boxes...");
}
});
console.log
始终返回undefined
和unchecking boxes...
。
答案 0 :(得分:0)
当您想要定义变量时,只需使用install.packages('rJava', type='source')
install.packages('xlsx', type='source')
,当您想要将值设置为现有变量时,不要添加它。
只需用以下代码替换您的代码:
$opt = array(
'resource' =>'customers',
'display' => '[birthday]',
'filter[firstname]' => '[John]',
'filter[lastname]' => '[DOE]'
);
答案 1 :(得分:0)
仅指定变量,不要使用var
重新启用它。
如果执行var CTT = 2
会发生什么情况,即在函数作用域上初始化一个新变量,该变量优先于全局作用域中定义的变量。因为这是允许的,有时甚至希望你没有错误。但是,因为您在函数范围上初始化变量,所以不再访问第1行中定义的变量。
您还混淆了CCT
和CTT
。
这可行(see fiddle)
var CTT;
$("#filterTitleTopic").click(function () {
console.log(CTT);
if (CTT == undefined || CTT == null || CTT == 2) {
$('input.topic').prop('checked', false);
CTT = 1;
console.log("unchecking boxes...");
}
else if (CTT == 1) {
$('input.topic').prop('checked', true);
CTT = 2;
console.log("checking boxes...");
}
});
答案 2 :(得分:0)
我想这里有两个问题:
CCT
vs CTT
)。var foo
,则会获得全新的本地函数,并且您无法再直接访问您在外部escope中定义的任何foo
函数。要访问全局变量只是使用它们,而不是重新定义它们。