有时可以使用cursorAt拖动JQuery droppable out事件

时间:2016-08-19 12:05:23

标签: javascript jquery jquery-ui draggable droppable

当draggable有param cursorAd时(在开始拖动draggable移出droppable以设置游标位置之前),有时JQuery droppable out事件没有被触发。

例如(尝试将其拖到右下角):

<!doctype html>
<html lang="ru">
    <head>
        <meta charset="utf-8" />
        <script type="text/javascript" src="jquery.min-1.5.0.js"></script>
        <script type="text/javascript" src="jquery-ui.min-1.8.9.js"></script>
    </head>
    <body>
        <div id="dg1" style="z-index:1;border:1px solid red;width:100px;height:50px;position:absolute;">draggable</div>
        <div id="dp1" style="border:1px solid green;width:100px;height:50px;position:absolute; top:100px;left:100px;">droppable</div>
    <script>
        $(document).ready(function(){
            $('#dg1').draggable({
                cursorAt:{
                    left:20,
                    top:20
            }
        });
        $('#dp1').droppable({
            drop:function(){
                console.log('drop event');
            },
            out:function(){
                console.log('out event');
            }
        });
    });
    </script>
    </body>
</html>

请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

只需将容差touch添加到droppable

即可
tolerance:"touch"

Working Demo

  

默认情况下,tolerance设置为intersect

     

&#34;相交&#34; Draggable在两者中重叠至少50%的droppable   方向。

     

我们需要根据您的要求制作touch

     

&#34;触摸&#34; Draggable可重叠任何金额。