我正在使用一个名为FullCalendar的jQuery插件来制作一个日历应用程序。我在日历的左边做了一个选项卡,上面有日历上显示的6周中每一周的选项卡。因此,例如,如果您将鼠标放在"第1周"选项卡上,它将显示当月第一周的议程视图。我想这样做,当你的鼠标移到选项卡上时,它会显示周,当你离开选项卡时,它回到正常的月份视图。我有这个部分要工作,但我也想要它,这样当你真正点击选项卡时,它会停留在那个视图上,而不会切换回月份视图。
以下是正确工作的鼠标悬停和鼠标悬停部分:
<script>
$( '#week2' ).mouseover(function() {
$('#week2').css('color', 'white');
$('#week2').week2();
});
$( '#week2' ).mouseout(function() {
$('#week2').weekout();
$('#week2').css('color', 'yellow');
});
</script>
只需重新迭代,当用户将鼠标放在"第2周"选项卡上时,它就会显示第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()函数就不会运行。但是,它以任何方式运行:(
在$( '#week1' ).click
函数中再次定义var x
,因此变量将失去其原始全局作用域。
更改您的代码来自:
$( '#week1' ).click(function() {
var x = 1;
});
至:
$( '#week1' ).click(function() {
x = 1;
});
关于var和作用域的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var