javascript拖放-防止元素拖放到另一个droppable元素中

普罗洛姆兹

标题说明了这一点-如果我将fisrt元素放置在“井”中,则第二个可放置元素可以放置在第一个元素内。另外,我还需要防止多个元素掉入同一“孔”中。HTML是这样的:

 <div class="container-fluid">
    <div class="row">
        <table class="table">
            <tbody>
                <tr>
                    <td>Word 3</td>
                    <td><div class="well" style="max-width: 200px;" id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
                    <td><div class="btn btn-primary" id="drag1" draggable="true" ondragstart="drag(event)" width="336" height="69">Move 1</div></td>
                </tr>
                <tr>
                    <td>Word 2</td>
                    <td><div class="well" style="max-width: 200px;" id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
                    <td><div class="btn btn-primary" id="drag2" draggable="true" ondragstart="drag(event)" width="336" height="69">Move 2</div></td>
                </tr>
                <tr>
                    <td>Word 1</td>
                    <td><div class="well" style="max-width: 200px;" id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
                    <td><div class="btn btn-primary" id="drag3" draggable="true" ondragstart="drag(event)" width="336" height="69">Move 3</div></td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

JS是这样的:

function allowDrop(ev) {
    ev.preventDefault();
}

function drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    ev.target.appendChild(document.getElementById(data));
    stop();
}
先知

为此,请使用Jquery UI,因为实现非常简单。

定义一个可放置的对象:

$( ".selector" ).droppable({
    accept: ".special" // .selector will only allow elements to be dropped on it that the class .special
});

要进行更新:

$( ".selector" ).droppable( "option", "accept", ".special2" );

要使元素可拖动:

// Allow elements with class .selector to be dragged
$( ".selector" ).draggable( "enable" );

要进行更新:

// Disable dragging for elements with class .selector
$( ".selector" ).draggable( "disable" );

在您的情况下,您可以启用所有这三个元素:

$( "#drag1, #drag2, #drag3" ).draggable( "enable" );
// Make #drag1 one droppable, accepts #drag2
$( "#drag1" ).droppable({
    accept: "#drag2"
});
// So so on so forth...

无论您要实现哪种类和元素,都可以复制这几行内容。它比具有所有属性和功能的JavaScript版本要容易得多。

确保包括:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

文件:

可滴下的

可拖动

教程

如有疑问请发表评论

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript拖放-防止元素拖放到另一个droppable元素中

来自分类Dev

拖动元素时将内部html拖放到另一个元素中

来自分类Dev

如何将div拖放到另一个div中,并使整个元素跟随?

来自分类Dev

如何多次将同一元素拖放到JavaScript或jQuery中的另一个div框中?

来自分类Dev

将.PNG图像拖放到JavaScript中的另一个图像之上

来自分类Dev

从dynamic.stage拖放到另一个

来自分类Dev

jQuery拖放元素保留在列表中并创建另一个

来自分类Dev

Android将ImageView拖放到另一个ImageView(或布局)中

来自分类Dev

从TableView拖放到Swift中的另一个视图

来自分类Dev

从TableView拖放到Swift中的另一个视图

来自分类Dev

将 UIView 拖放到另一个(UIPanGesture 识别器)中

来自分类Dev

将一个画布内的对象拖放到html5中的另一个画布上

来自分类Dev

Xcode将ViewController从一个项目拖放到另一个项目

来自分类Dev

将图像从一个div拖放到另一个div

来自分类Dev

将ListView Item从一个listView拖放到另一个

来自分类Dev

将一个节点拖放到另一个节点

来自分类Dev

Xcode将ViewController从一个项目拖放到另一个项目

来自分类Dev

禁用从一个级别拖放到另一个级别

来自分类Dev

将ListView Item从一个listView拖放到另一个

来自分类Dev

将单元格从datagridview拖放到另一个

来自分类Dev

将下拉的Listview项目拖放到另一个项目中

来自分类Dev

如何将ImageView拖放到另一个ImageView上

来自分类Dev

从Silverlight OOB拖放到另一个应用程序

来自分类Dev

如何将ImageView拖放到另一个ImageView上

来自分类Dev

JavaFX将形状拖放到另一个形状上

来自分类Dev

Android 将 ImageView 拖放到另一个 ImageView

来自分类Dev

将一个项目从一个recyclerview(列表视图)拖放到另一个recyclerview(listview)中

来自分类Dev

将一个项目从一个recyclerview(列表视图)拖放到另一个recyclerview(listview)中

来自分类Dev

从一个滑动网格拖放到同一页面上的另一个

Related 相关文章

  1. 1

    javascript拖放-防止元素拖放到另一个droppable元素中

  2. 2

    拖动元素时将内部html拖放到另一个元素中

  3. 3

    如何将div拖放到另一个div中,并使整个元素跟随?

  4. 4

    如何多次将同一元素拖放到JavaScript或jQuery中的另一个div框中?

  5. 5

    将.PNG图像拖放到JavaScript中的另一个图像之上

  6. 6

    从dynamic.stage拖放到另一个

  7. 7

    jQuery拖放元素保留在列表中并创建另一个

  8. 8

    Android将ImageView拖放到另一个ImageView(或布局)中

  9. 9

    从TableView拖放到Swift中的另一个视图

  10. 10

    从TableView拖放到Swift中的另一个视图

  11. 11

    将 UIView 拖放到另一个(UIPanGesture 识别器)中

  12. 12

    将一个画布内的对象拖放到html5中的另一个画布上

  13. 13

    Xcode将ViewController从一个项目拖放到另一个项目

  14. 14

    将图像从一个div拖放到另一个div

  15. 15

    将ListView Item从一个listView拖放到另一个

  16. 16

    将一个节点拖放到另一个节点

  17. 17

    Xcode将ViewController从一个项目拖放到另一个项目

  18. 18

    禁用从一个级别拖放到另一个级别

  19. 19

    将ListView Item从一个listView拖放到另一个

  20. 20

    将单元格从datagridview拖放到另一个

  21. 21

    将下拉的Listview项目拖放到另一个项目中

  22. 22

    如何将ImageView拖放到另一个ImageView上

  23. 23

    从Silverlight OOB拖放到另一个应用程序

  24. 24

    如何将ImageView拖放到另一个ImageView上

  25. 25

    JavaFX将形状拖放到另一个形状上

  26. 26

    Android 将 ImageView 拖放到另一个 ImageView

  27. 27

    将一个项目从一个recyclerview(列表视图)拖放到另一个recyclerview(listview)中

  28. 28

    将一个项目从一个recyclerview(列表视图)拖放到另一个recyclerview(listview)中

  29. 29

    从一个滑动网格拖放到同一页面上的另一个

热门标签

归档