我有一个应用程序,我正在检查用户的位置,如果他们很近(小于 0.05 m),他们可以点击一个 div,如果他们很远(超过 0.05 m),他们就不能单击它。问题是我在不同的地方有不同的坐标,如果你在其中之一,你应该能够点击它。这使得条件总是正确的,因为对于某些位置你会很远但对于一个它会是真的(如果你在绑定)我尝试了一个 while 语句,当你进入其中一个位置时它会起作用,但是如果你出去它永远不会消失也不会显示我的横幅。//BEING ABLE TO CLICK DIVwhile (distance < .05) { restaurantImAt = nameRestaurant $('.div-image').attr('src', '/assets/picture.svg') $('#div').removeClass('disable')//THIS DOESNT WORK EVENT IF ITS TRUE IF YOURE NOT OUTSIDE THE .05 if (distance > .05){ disableDiv() $('.page-intro').prepend( `<p class="outside-location"><i class="fas fa-exclamation-circle"></i> You are currently out of bound</p> `); } break}我也试过只做一个while(distance){并将 if 语句放在里面,但它也不起作用。有谁知道当两个条件都成立时使用的最佳方法是什么?
2 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
您无法理解的是,一旦进入 while 循环,while
循环外的任何代码将永远不会再执行。
因为没有什么改变distance
内部while循环,它里面的代码将永远保持执行。
Javascript 是单线程的,并且您的 while 循环在其中时将是在该线程上执行的唯一代码,这确实意味着distance
它将永远保持进入循环时的值,因为任何可能更改的代码distance
永远不会有机会被处决。
您可以使用while
循环,您只需要确保distance
在while
条件中执行计算 的代码:
while (getDistance() < .05) { /* do stuff */ }
(假设getDistance
是一个返回当前的函数distance
)。
添加回答
举报
0/150
提交
取消