简单的jQuery droppable无法正常工作

Jac*_*ton 4 javascript jquery jquery-ui

Draggable可以在这里工作,但是当我将DIV拖到可放置区域时,警报功能不会被触发.我确定这是愚蠢的事,但也许有人可以阻止我把我的头撞到墙上,我做得对不对?

<head>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
            <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
            <title></title>
        </head>
        <body>

    <script>
            $(function() {
                $( ".draggable" ).draggable();
                $( ".droppable" ).droppable({
                    drop: function(event, ui) {
                        alert('dropped');
                    }
                });
            });
    </script>

        <div id=10 class="draggable">one</div>

        <div id="trash" class="droppable"></div>



        </body>
        </html> 
Run Code Online (Sandbox Code Playgroud)

Jam*_*gne 8

问题在于,默认情况下,元素的中心用于确定元素的放置位置.您div没有定义的大小,因此它是屏幕的宽度.如果您设法删除它以使该元素的中心位于droppable中,您将看到警报.

这种背景颜色的小提琴说明了这个问题.

http://jsfiddle.net/v6PME/

使用定义的宽度,您将看到您可能正在寻找的功能:

http://jsfiddle.net/v6PME/1/

注意:我已经假设你已经遗漏了你的css并且#trashdiv有一些大小,所以它可以被丢弃.


Pet*_*erM 5

詹姆斯·蒙塔涅的回答是正确的。特别是它不起作用的原因(谢谢!)。

然而,我认为更好的解决方案是通过将tolerancedroppable设置为 来提高放置精度pointer

http://jsfiddle.net/org1b75t/2/