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');
});