整数等于3不符合== 3条件

Eri*_*ubé 2 javascript jquery

我有一些javascript/jQuery代码用于进行图像转换.$(obj)是一个包含两个图像的框,它是每个图像的大小.下面的代码片段用于选择$(obj)边框之外的新位置,这与之前使用的位置不同(因为一个图像向右滑动而新图像从左侧滑动看起来好多了而不是一个向右滑动而另一个来自右边.)

            var newLoc = Math.floor((Math.random() * 4));
            if ($(obj).data('lastloc') == newLoc) {
                console.log("FIXED "+newLoc);
                if (newLoc == 3) newLoc = 2;
                if (newLoc == 2) newLoc = 3;
                if (newLoc == 0) newLoc = 1;
                if (newLoc == 1) newLoc = 0;
                console.log("WITH "+newLoc);
            }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是Chrome和Firefox都在JavaScript控制台中输出:

FIXED 3
WITH 3
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

Dan*_*ite 10

你需要else if.它刚刚落到这里

if (newLoc == 3) newLoc = 2;
if (newLoc == 2) newLoc = 3;
Run Code Online (Sandbox Code Playgroud)

试试这个

if (newLoc == 3) newLoc = 2;
else if (newLoc == 2) newLoc = 3;
else if (newLoc == 0) newLoc = 1;
else if (newLoc == 1) newLoc = 0;
Run Code Online (Sandbox Code Playgroud)

或使用适当的 switch

  • 或者转换声明 (2认同)