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



我正在使用一个名为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

相关内容

  • 没有找到相关文章