关于JavaScript中的switch case
console.log说 穆斯敦 181鼠标移动 鼠标关于JavaScript中的switch case,javascript,Javascript,console.log说 穆斯敦 181鼠标移动 鼠标 像上面的代码一样,传入的操作实际上在前两种情况下运行良好,但是即使控制台显示“mouseup”,它仍然无法通过第三种情况?我的代码有什么问题?是因为当mouseisdown为false时,您正在返回。你的代码说,在第一种情况下,鼠标按下了,这就是为什么它会被击中。在第二种情况下,鼠标必须向下才能执行passif语句。因此,您在按住左键的同时移动鼠标 现在第三种情况mouseup不能满足mouseisdown要求。(我很确定,当操作是mous
像上面的代码一样,传入的操作实际上在前两种情况下运行良好,但是即使控制台显示“mouseup”,它仍然无法通过第三种情况?我的代码有什么问题?是因为当
mouseisdown
为false时,您正在返回。你的代码说,在第一种情况下,鼠标按下了,这就是为什么它会被击中。在第二种情况下,鼠标必须向下才能执行passif
语句。因此,您在按住左键的同时移动鼠标
现在第三种情况mouseup
不能满足mouseisdown
要求。(我很确定,当操作是mouseup
时,标志是false
),因为它是相反的,所以在执行其他所有操作之前返回函数,这使得switch语句无法访问
要测试这一点,只需去掉第一个
if语句
,并检查是否可以点击mouseup
。如果这样做,则会出现与逻辑相关的错误。查看mouseup
case块中代码的颜色。看起来有点滑稽全是红色的?但是为什么上面的一行有黑色文本……因为mouseisdown
为false?@JaredFarrish这很可能不在实际代码中。它只是为了这个问题而添加的。@Xufox-当然,它根本不会运行。@HBP你是对的,还有比这个问题更多的问题。谢谢
function tool_line(action, x, y) {
console.log(action);
if (!mouseisdown) {
return;
}
switch (action) {
case "mousedown":
startx = x;
starty = y;
break;
case "mousemove":
if (mouseisdown) {
$(current_marker).remove();
current_marker = svg_line(x1, y1, x2, y2);
}
break;
case "mouseup":
console.log('why don't go there?'); // Question!
svg_line(x1, x2, y1, y2);
break;
}
}