如何使拖动检测更加健壮

时间:2011-05-09 02:20:45

标签: jquery mouseup

我在变量中存储全局“点击”状态,以便检测拖动,或检测鼠标是否在按住鼠标时被按住。

问题在于,即使释放鼠标按钮,各种事情也可能导致“点击”状态保持true,例如,如果弹出警报。

有解决方案吗?

编辑:

我开始认为“各种各样的东西”可能仅限于警报,并且浏览器由于按下键盘快捷键等原因而失去焦点。我想这可以和你一起生活。

1 个答案:

答案 0 :(得分:1)

你是对的!点击状态不可信任...... 它让我感到沮丧几个小时。

但也许JQuery draggable仍然是你的解决方案。

您需要做的就是使用透明助手:

$("#draggable3").draggable({
        cursor: "move",
        helper: function( event ) {
            return $( "<div>" );
        },
                     start: function(event, ui){},
                     drag: function(event, ui){},
                     stop: function(event, ui){}
    });

更多信息:http://jqueryui.com/demos/draggable/#event-start(自定义助手示例) 作为侧踢,你可以使用droppable和悬停类:

http://jqueryui.com/demos/droppable/#visual-feedback