0

現在、jQueryをピックアップしてドラッグ&ドロップ環境を構築しようとしています。私はほとんどのことをうまく機能させることができます。ただし、2 つ以上のアイテムをドロップ領域にドラッグしようとすると、後続のアイテム ドロップの Y 位置のドロップが常に前のアイテム ドロップよりも大きくなります。

誰でも問題がどこにあるか知っていますか? 前もって感謝します...

PS : この UI をテストしている間、ドロップ可能な領域がウィンドウ サイズよりも大きい側にスクロール バーがあるサイズ ダウン ウィンドウですばやくドラッグして、ドラッグ アイテムは jQuery コンテインメント セットをエスケープすることができます。バックグラウンドで非表示またはダーティな要素になります。ドラッグドロップ Web 環境をコーディングするためのより良い方法とよりクリーンな方法はありますか?

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <link rel="stylesheet" type="text/css" href="http://stkxp/metasphere/fac/home/home.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
    <script>
        $(
            function(){
                $("#menu").draggable();

                $(".drag").draggable(
                    {helper:'clone'}
                );

                $("#drop").droppable(                        
                    {
                        accept:'.drag',
                        drop:function(event,ui){

                                newID = $.datepicker.formatDate('@', new Date() );

                                $(this).append(                                        
                                    $(ui.draggable).clone().attr(
                                        {
                                            id:newID
                                        }
                                    )
                                );

                                $("#"+newID).css(
                                    {                                            
                                        top: event.pageY +"px",
                                        left: event.pageX-this.offsetLeft +"px"
                                    }
                                );

                                $("#"+newID).addClass("node");    

                                $("#"+newID).removeClass("drag");

                                $("#"+newID).draggable(
                                    {
                                        containment:$("#drop")
                                    }
                                );

                            }
                    }
                )


            }
        );
    </script>

    <style>        
        #drop{
            width:55%;
            min-width:400px;    

            min-height:1000px;

            float:left;
            border:1px solid blue;    
        }
        #property{
            width:24%;
            min-width:235px;        

            float: left;
            border:1px solid black;                
        }            
    </style>        
</head>
<body>
    <div id="drop"></div>
    <div id="property">            
        <div class="drag">-> Item 1</div>                                 
    </div>        
</body>

4

1 に答える 1

0

クローンを絶対位置に設定することで解決できます。

于 2013-02-20T21:59:32.673 に答える