我正在使用一个名为FullCalendar的jQuery插件来制作日历应用。我在日历左侧创建了一个标签,其中包含日历上显示的6周中每个日期的标签。因此,例如,如果将鼠标放在“第1周”选项卡上,则会显示该月第一周的议程视图。我想这样做,以便当你的鼠标越过标签时它会显示一周,当你的鼠标离开标签时,它会回到正常的月份视图。我得到了那部分工作,但我也想要它,以便当你实际点击选项卡时,它会保留在该视图上,并且不会切换回月视图。
这是正常工作的mouseover和mouseout部分:
<script>
$( '#week2' ).mouseover(function() {
$('#week2').css('color', 'white');
$('#week2').week2();
});
$( '#week2' ).mouseout(function() {
$('#week2').weekout();
$('#week2').css('color', 'yellow');
});
</script>
只是为了重新迭代,所有这一切都是当用户将鼠标放在'week2'选项卡上时,它显示第2周的周视图。这是我无法使用的代码尝试在用户点击选项卡时使其保持在视图上,即使鼠标离开选项卡也是如此:
<script>
var x = 0;
$( '#week1' ).click(function() {
var x = 1;
});
$( '#week1' ).mouseover(function() {
$('#week1').css('color', 'white');
$('#week1').week1();
});
$( '#week1' ).mouseout(function() {
if(x < 1) {
$('#week1').weekout();
$('#week1').css('color', 'yellow');
}
else {
null
}
});
</script>
我正在尝试做的是,如果用户点击选项卡,它将x设置为1,那么mouseout()函数就不会运行。但是,无论如何它都会运行:(
答案 0 :(得分:3)
您在var x
函数中再次定义$( '#week1' ).click
,因此该变量将失去其原始全局范围。
更改您的代码:
$( '#week1' ).click(function() {
var x = 1;
});
为:
$( '#week1' ).click(function() {
x = 1;
});
var和范围界定的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var