作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用名为 FullCalendar 的 jQuery 插件来制作日历应用程序。我在日历左侧创建了一个选项卡,上面有日历上显示的 6 周中每一周的选项卡。因此,例如,如果您将鼠标放在“第 1 周”选项卡上,它将显示该月第一周的议程 View 。我想做到这一点,当您的鼠标移至选项卡上时,它会显示周,而当您的鼠标离开选项卡时,它会返回到正常的月 View 。我让该部分正常工作,但我也希望它能够在您实际单击选项卡时保留在该 View 上,并且不会切换回月 View 。
这是正常工作的鼠标悬停和鼠标悬停部分:
<script>
$( '#week2' ).mouseover(function() {
$('#week2').css('color', 'white');
$('#week2').week2();
});
$( '#week2' ).mouseout(function() {
$('#week2').weekout();
$('#week2').css('color', 'yellow');
});
</script>
重申一下,所做的只是当用户将鼠标放在“week2”选项卡上时,它会显示第 2 周的周 View 。这是我用来执行的不起作用的代码尝试在用户单击选项卡时使其保留在 View 上,即使鼠标离开选项卡:
<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
关于javascript - 如何在 jQuery/javascript 中正确使用 if then else 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18277715/
我是一名优秀的程序员,十分优秀!