Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 JQuery-mousedown、mouseup并单击同一元素_Javascript_Jquery_Click_Mousedown_Mouseup - Fatal编程技术网

Javascript JQuery-mousedown、mouseup并单击同一元素

Javascript JQuery-mousedown、mouseup并单击同一元素,javascript,jquery,click,mousedown,mouseup,Javascript,Jquery,Click,Mousedown,Mouseup,我有一个旋转木马,我需要让他像Instagram旋转木马一样工作。 单击“更改幻灯片”,但单击“鼠标向下”只需停止动画。我的JQuery: $(".fancy-carousel").on('mousedown',function (e) { ...stop animation }); $(".fancy-carousel").on('mouseup',function (e) { ..continue animation }); $(".fancy-carousel").on(

我有一个旋转木马,我需要让他像Instagram旋转木马一样工作。 单击“更改幻灯片”,但单击“鼠标向下”只需停止动画。我的JQuery:

 $(".fancy-carousel").on('mousedown',function (e) {
    ...stop animation
});

$(".fancy-carousel").on('mouseup',function (e) {
  ..continue animation
});

$(".fancy-carousel").on('click',function (e) {
   ..change slide
});

但我不知道如何让脚本知道“单击”和“鼠标向下”的区别。当我点击元素并保持一段时间时,它会停止动画,但在“mouseup”之后,它也会触发“click”事件。有没有办法分割这些事件?或者我应该计算一下鼠标停留时间吗

一次“点击”只是一次“鼠标向下”和一次“鼠标点击”的完整循环。你不能有一个没有另一个

为了让代码了解差异,您需要一个跟踪您意图的变量

  • 创建一个变量来跟踪您的意图-默认为“单击”
  • var intention=“单击”;
    
  • 在mousedown函数中,暂停动画并启动计时器。我们将使用此计时器来检测鼠标按下的时间(即,如果超过一秒钟,则不是单击,而您只想触发mouseup)
  • var-detectiontension=setTimeout(函数(){
    意图=“鼠标”;
    })
    
  • 在鼠标向上移动功能中,取消此超时。如果在几毫秒后调用鼠标向上,则需要单击鼠标
    clearTimeout(检测超时);
    如果(意图==“鼠标悬停”){
    //做老鼠的东西
    }
    //重置意图
    意图=点击;
    
  • 在你的点击功能中签入你想点击的内容
    if(意图==“点击”){
    //不要点击东西
    }
    
    单击只是“鼠标向下”和“鼠标按下”的一个完整循环。你不能有一个没有另一个

    为了让代码了解差异,您需要一个跟踪您意图的变量

  • 创建一个变量来跟踪您的意图-默认为“单击”
  • var intention=“单击”;
    
  • 在mousedown函数中,暂停动画并启动计时器。我们将使用此计时器来检测鼠标按下的时间(即,如果超过一秒钟,则不是单击,而您只想触发mouseup)
  • var-detectiontension=setTimeout(函数(){
    意图=“鼠标”;
    })
    
  • 在鼠标向上移动功能中,取消此超时。如果在几毫秒后调用鼠标向上,则需要单击鼠标
    clearTimeout(检测超时);
    如果(意图==“鼠标悬停”){
    //做老鼠的东西
    }
    //重置意图
    意图=点击;
    
  • 在你的点击功能中签入你想点击的内容
    if(意图==“点击”){
    //不要点击东西
    }
    
    这真是太棒了。但还有一件事,在手机上有可能做到这一点吗?我试着用“按下键”、“按住键”、“按键”来更改“鼠标向下”,但这些事件都不起作用。它总是只需跳到“单击”并显示标准浏览器选项,如复制、下载图像和其他。@kores59尝试使用
    touchstart
    touchend
    ,这非常有效。但还有一件事,在手机上有可能做到这一点吗?我试着用“按下键”、“按住键”、“按键”来更改“鼠标向下”,但这些事件都不起作用。它总是只需跳到“单击”并显示标准浏览器选项,如复制、下载图像和其他。@kores59尝试使用
    touchstart
    touchsend
    -摘自。