0

我一直在寻找解决此问题的方法,但尚未找到解决方案。我在可滚动区域中有一个列表,其中包含可拖动元素。我正在尝试对其进行设置,以便我可以将该父 div 之外的元素拖到可放置区域中,但是当我尝试拖动它时,它似乎只是在父 div 内移动。

.inputs{
                overflow-y: scroll;
                overflow-x:visible;
                height: 100px;
                float:left;
            }
            ul{
                width:50px;
                float:left;
            }
.spaces{
                float:right;
                border: 0px;
                width: 500px;
            }

.spaces td {
                background-color:#666666;
                margin:2px;
                width:184px;
                height: 99px;
                border:0px;
            }

这是可拖放项目的代码

$(".inputs li").draggable( {
                                                         opacity: .4,
                                                         create: function(){$(this).data('position',$(this).position())},
                                                         cursorAt:{left:15},
                                                         cursor:'move', 
                                                         revert:function(event, ui) {
                                                         $(this).data("draggable").originalPosition = {
                                                         top: 0,
                                                         left: 0
                                                         };
                                                         return !event;
                                                         },
                                                         start:function(){
                                                            $('.info').css('visibility', 'hidden');

                                                         }
                                                         });

                              $('.spaces').find('td').droppable({
                                                                drop:function(event, ui){
                                                                snapToMiddle(ui.draggable,$(this));
                                                                $(this).droppable('option', 'accept', ui.draggable);
                                                                $(this).css('background-color', 'red');
                                                                },
                                                                out: function(event, ui){
                                                                $(this).droppable('option', 'accept', '.inputs li');
                                                                $(this).css('background-color', '#666');
                                                                }  
                                                                });

                              }); 
<div class="inputs">
            <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
            <li>9</li>
            </ul>                
            </div>
            <br/>
            <table class="spaces">
                <tr>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td class = "hidden"></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td class = "hidden"></td>
                </tr>
                <tr>
                    <td class = "hidden"></td>
                    <td class = "hidden"></td>
                    <td></td>
                    <td class = "hidden"></td>
                    <td class = "hidden"></td>
                </tr>
            </table>
4

1 回答 1

0

containment创建可拖动对象时使用参数。就像是:

$(".inputs li").draggable({
 containment: "document"
 ....
});

有关更详细的文档: http ://api.jqueryui.com/draggable/#option-containment

于 2013-01-20T19:53:24.573 回答