日期:2014-05-16  浏览次数:20911 次

如何使用jquery判断当前鼠标是按住不松的事件? - Web 开发 / Ajax
mousedown

mousemove

mouseup 

如题,想实现当鼠标按住某DIV 不松开的时候触发一个function,可不知道该如何判断鼠标是按住不松的状态,想问下哪位大虾知道该如何判定麻烦知会下!谢谢了!

------解决方案--------------------

我用JQuery写了个,看看是不是你想要的。

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <script src="lib/jquery-1.4.2.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            var flag = false;
            var stop;
            $("input").mousedown(function() {
                stop = setTimeout(function() {//down 1s,才运行。
                    flag = true;
                    alert("开始处理你的代码.");
                }, 1000);
                $("input").mouseup(function() {//鼠标up时,判断down了多久,不足一秒,不执行down的代码。
                    if (!flag) {
                        clearTimeout(stop);
                        setTimeout(function()
                        { CheckUp(); }, 20);
                    }
                });
            });

        });
    </script>
</head>
<body>
    <input type="button" value="按住我1秒钟才行" />
</body>
</html>

------解决方案--------------------
只有drag有类似的功能。这个东西你要做什么呢,没意义啊。不松是个持续的状态,在持续下很多东西不好处理的。
------解决方案--------------------

1楼修改版

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <script src="lib/jquery-1.4.2.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            $("input").mousedown(function() {
                var flag = false;
                var stop;
                stop = setTimeout(function() {//down 1s,才运行。
                    flag = true;
                    alert("开始处理你的代码.");
                }, 1000);
                $("input").mouseup(function() {//鼠标up时,判断down了多久,不足一秒,不执行down的代码。
                    if (!flag) {
                        clearTimeout(stop);
                    }
                });
            });

        });
    </script>

</head>
<body>
    <input type="button" value="按住我1秒钟才行" />
</body>
</html>