Javascript 使用if语句检查鼠标是否向下移动?

Javascript 使用if语句检查鼠标是否向下移动?,javascript,jquery,if-statement,mousedown,Javascript,Jquery,If Statement,Mousedown,是否可以这样做: if ($(this).mousedown() == true) { 我原以为那样行得通,但实际上不行 其他详细信息:我试图检查当鼠标离开特定的DIV时鼠标按钮是否按下,因此如果用户在鼠标离开DIV时按住鼠标按钮,请执行此操作,否则执行此操作。 像这样的 代码: 按下鼠标并在此处释放 $(“p”).mouseup(函数(){ $(this.append('鼠标向上'); }).mousedown(函数(){ $(this.append('Mouse down'); });

是否可以这样做:

if ($(this).mousedown() == true) {
我原以为那样行得通,但实际上不行

其他详细信息:我试图检查当鼠标离开特定的
DIV时鼠标按钮是否按下,因此如果用户在鼠标离开DIV时按住鼠标按钮,请执行此操作,否则执行此操作。

像这样的

代码:


按下鼠标并在此处释放

$(“p”).mouseup(函数(){ $(this.append('鼠标向上'); }).mousedown(函数(){ $(this.append('Mouse down'); });
我能想到的最简单的方法是将
mousedown
mouseup
事件侦听器绑定到
文档
并相应地更新全局变量。在元素的
mouseout
事件中,您可以检查该变量的状态,并根据需要进行操作。(注意:这假设您不关心鼠标在
div上是否被按下……您必须澄清您的问题)


这是上面的一个例子。

好吧,我能给你的最好选择是:
回答您最初的问题,是的,这是可能的。当mousedown事件在元素上激发时,该元素将变为活动元素,并可通过伪选择器选择:active。在jQuery中,如果未选择任何内容,则返回一个空数组,我们可以将其与.length数组属性结合使用,并将活动的伪选择器转换为一个检查,以查看鼠标是否落在某个特定元素上:

if ( $('#id:active').length ) {
  //do something
}
检查鼠标在给定时间点是否落在某个特定元素上是另一个事件,与此问题的标题不符,我可能会添加更改。谷歌把我带到了这里,这个答案是为那些不可避免地会追随我的人准备的。

看看这个。

Mousedown启动一个计时器,检查鼠标在1秒后是否仍处于下降状态

<button id="button">Press me</button>
<div id="log"></div>

您想知道鼠标左键是否在某个项目上,或者他们是否只是在页面上的任何位置按下了该项目?您是否试图确定哪个事件触发了函数/方法?更新的问题,是,在div上按下左键。您是否试图查看是否有人在拖动或选择某个元素/文本?使用带有e的mousemove.which==1;使用
$.data()
down
变量附加到
#example
元素会有问题吗?不会,一点问题都没有。好的想法,为了避免使用全局变量。例如,我想这是否需要在多个元素上。我唯一考虑的是速度。这听起来像是一张破唱片,但请在答案中发布您的实际代码(这被认为是最佳实践)<代码>:)
if ( $('#id:active').length ) {
  //do something
}
<button id="button">Press me</button>
<div id="log"></div>
var mousedown = false;
var mousedown_timer = '';
$('#button').mousedown(function(e) {
    mousedown = true;
    $('#log').text('mousedown...');
    mousedown_timer = setTimeout(function () {
        if(mousedown) {
            $('#log').text('1 second');
        }
    }, 1000);
}).mouseup(function(e) {
    mousedown = false;
    clearTimeout(mousedown_timer);
    $('#log').text('aborted');
});