为什么变量check
在屏幕上只给出0,即使按下输入字段?
$(function() {
var check;
if (!check){ // checking if check is null (changed to 0)
check = 0;
}
$('input').bind('focus',function() {
if(check == 0){ //if I pressed on an input field change check to 1
check = 1;
}
if(check == 1){
setTimeout(function(){
// $('#header').css('display','none');
check = 2; //if check is already 1 change it to 2.
}, 200);
}else{
//$('#header').css('display','none');
}
});
$('.check').html(check);
});
脚本保留在div下。 (页面底部)
答案 0 :(得分:1)
你需要为.check
设置html总是在更改check
的值时,jquery中没有像棱镜那样的自动数据绑定,请参阅fiddle
$(function() {
var check;
if (!check){ // checking if check is null (changed to 0)
check = 0;
}
$('input').bind('focus',function() {
if(check == 0){ //if I pressed on an input field change check to 1
check = 1;
}
if(check == 1){
setTimeout(function(){
// $('#header').css('display','none');
check = 2; //if check is already 1 change it to 2.
$('.check').html(check);
}, 200);
}else{
//$('#header').css('display','none');
}
$('.check').html(check);
});
});
答案 1 :(得分:0)
您的代码很好!您只需将 $('.check').html(check);
置于事件监听器函数中,如下所示:
$(function() {
var check;
if (!check){ // checking if check is null (changed to 0)
check = 0;
}
$('input').bind('focus',function() {
if(check == 0){ //if I pressed on an input field change check to 1
check = 1;
}
if(check == 1){
setTimeout(function(){
// $('#header').css('display','none');
check = 2; //if check is already 1 change it to 2.
}, 200);
}else{
//$('#header').css('display','none');
}
$('.check').html(check);
});
});
答案 2 :(得分:0)
没有小提琴很难猜测,但我的赌注是你没有在焦点事件处理程序中升级$(' .check')的值。您只设置一次(为0)。你还应该添加
$('.check').html(check);
处理bind
事件的函数(例如,在else分支之后,也可能在超时处理函数内),因为check
变量的值的变化不会自动反映到HTML。