如何在jQuery / javascript中正确使用if then else语句?

时间:2013-08-16 16:10:15

标签: javascript jquery html fullcalendar

我正在使用一个名为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()函数就不会运行。但是,无论如何它都会运行:(

1 个答案:

答案 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