3

そのため、あるテーブル データから別のテーブル データに項目をドラッグできるようにするこのアプリケーションに取り組んでいました。これは、親テーブルの行に含まれている必要があります。

しかし、ドラッグするたびに、プレースホルダーの高さを除いて、格納物に固執しているようです.

自分で試してみてください: http://jsfiddle.net/2wy8R/

親の親を選択する方法はありますか? では、プレースホルダーをカウントするにはどうすればよいでしょうか?

ご挨拶

.

更新: 問題の YouTube ビデオhttp://youtu.be/PMXcQvJmRGw

4

1 に答える 1

3

よし、どうぞ。シナリオにバグがあるように見えるため、デフォルトの封じ込めをオーバーライドしました。これが良い考えではない場合はお知らせください。

http://jsfiddle.net/2wy8R/6/

$('#first, #second').sortable({
    connectWith: '.sortable',
    placeholder: 'placeholder',
    start: function(event, ui) {
        ui.placeholder.height(ui.item.height() - 4);
        var p = $(ui.helper);
        var tr = p.closest("tr");
        $(document).mousemove(function(e) {
            var pOffset = p.offset();
            var trOffset = tr.offset();
            if (pOffset.left < trOffset.left) {
                p.css({left: trOffset.left});   
            }
            if (pOffset.left + p.width() > trOffset.left + tr.width()) {
                p.css({left: trOffset.left + tr.width() - p.width()});   
            }
            if (pOffset.top < trOffset.top) {
                p.css({top: trOffset.top});   
            }
            if (pOffset.top + p.height() > trOffset.top + tr.height()) {
                p.css({top: trOffset.top + tr.height() - p.height()});   
            }
        });
    }
}).disableSelection();

ただし、これにより mousemove イベントがドキュメントに追加され続けるため、注意してください。バインドする前に、mousemove のバインドを解除することをお勧めします...

于 2013-10-24T22:10:44.000 に答える