Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mousedown触发事件,然后当鼠标移出元素并触发mouseup时,它不会';行不通_Javascript_Jquery_Mouseevent - Fatal编程技术网

Javascript Mousedown触发事件,然后当鼠标移出元素并触发mouseup时,它不会';行不通

Javascript Mousedown触发事件,然后当鼠标移出元素并触发mouseup时,它不会';行不通,javascript,jquery,mouseevent,Javascript,Jquery,Mouseevent,在上面的示例中,当用户在按住鼠标按钮的同时单击并向左或向右拖动画布,然后将手指从鼠标上取下时,振荡器音符将挂起。我想解决这个问题。我很好奇他们的行为是否是一种简单的方式,比如 if (mouseup == !htmlElement){ then.... } 在本例中,html元素将是canvas元素,因为用户正在单击它 为了解决这个问题,我将页面的CSS宽度和高度设置为100%,从而使body元素包含页面 然后,我创建了一个函数,该函数使用mouseup click处理程序选择bod

在上面的示例中,当用户在按住鼠标按钮的同时单击并向左或向右拖动画布,然后将手指从鼠标上取下时,振荡器音符将挂起。我想解决这个问题。我很好奇他们的行为是否是一种简单的方式,比如

if (mouseup == !htmlElement){
     then....
}
在本例中,html元素将是canvas元素,因为用户正在单击它

为了解决这个问题,我将页面的CSS宽度和高度设置为100%,从而使body元素包含页面

然后,我创建了一个函数,该函数使用mouseup click处理程序选择body元素,该处理程序启动振荡器.stop()方法。这仅在用户将鼠标移到页面一侧时有效,但向下移动时仍会创建挂起的便条

此伪解决方案如下所示:


我想这个类似的问题回答了你的问题

下面是一个叫迈克的家伙的代码:

    var isDown = false;

    $("#element").mousedown(function(){
         isDown = true;
    });

    $(document).mouseup(function(){
        if(isDown){
            //do something
        isDown = false;
    }

链接中还有额外的代码处理边缘情况。

您是否尝试使用
$(document).mouseout()
,因为您的挂起状态是在鼠标离开身体时发生的。这是可行的,但我仍然好奇它们是否与我的“mouseup==”相似!htmlElement’上面的伪代码,在
文档中,所有元素都是HTML的,所以只有你才能在这些元素中检测
mouseout
mouseup
,或者另一种方法是使用
.blur()
如果从你的
画布上聚焦,那么
振荡器.stop()发生。