gpt4 book ai didi

javascript - 使用 if 语句检查变量 true

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:51 24 4
gpt4 key购买 nike

这是我的代码:

$(val1).mouseleave(function () {
flag = false;
$(val3 + "," + val4).mouseenter(function () {

flag = true;
//alert(flag);

});
if (flag == true) {
//alert("if"+flag);
$(".big" + i + j + "boxer").show();
$(".big" + i + "box").show();
$(".big" + i + "box").append('<div class="opacity" style="background-color:rgba(00,00,00,0.77);position:absolute;top:0;right:0;left:0;bottom:0;"></div>')
$(".small" + i + "box").append('<div class="opacity" style="background-color:rgba(00,00,00,0.77);position:absolute;top:0;right:0;left:0;bottom:0;"></div>')

} else {
//alert("else"+flag);
$('.opacity').remove();
$(val2).hide();
$(val3).show();

}
});

它不满足 flag = true 条件。如果我在 $(val1).mouseleave(function(){});alert,它显示 flag = true;但是当我在 $(val1).mouseleave(function(){}); 之外提醒它时,它显示 flag = false

好吧,让我解释一下:我有 4 个 block val1,val2,val3val4。当用户离开 val1 并进入 val3val4 block 时,我想 set/add opacity class 。 .. 如果他们不进入 val3/val4进入 val2 或另一个 block block 那么我想要删除不透明度类。

最佳答案

在进行 if 测试时:

if(flag==true)

...flag始终 为 false,因为您在此之前将其设置为 false。它唯一设置为 true 的地方是在您绑定(bind)的 mouseenter 处理程序内部,但此时不会调用该处理程序函数。

让我在您的代码的开头添加一些注释,以尝试使其更清晰:

$(val1).mouseleave(function () {
flag = false; // set flag to false
$(val3 + "," + val4).mouseenter(function () { // bind a mouseenter
flag = true; // that won't be called immediately
//alert(flag); // so won't change flag yet
});
if (flag == true) { // flag is still false

mouseleave 处理程序内部绑定(bind) mouseenter 处理程序没有意义,因为这意味着每次发生 mouseleave 时,您都会绑定(bind)一个额外的 mouseenter 相同元素的处理程序。

我真的不能建议一个具体的解决方案,因为你还没有解释你想要达到的效果。 (但我可能会先将 mouseenter 代码移到其他地方。)

关于javascript - 使用 if 语句检查变量 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17424352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com