【问题标题】:Jquery Drag and Drop to change div contentJquery拖放更改div内容
【发布时间】:2013-03-14 16:35:11
【问题描述】:

我在 html 文档中有 2 个可拖动的 div,并且在 2 个可拖动的 div 旁边有 1 个可放置的 div。

当您将其中一个可拖动 div 拖到可放置 div 上时,可放置 div 会显示一些文本,并且可拖动 div 会恢复到原来的位置。

我的问题是如何根据拖放到可放置 div 上的可拖动 div 更改可放置 div 中的文本?

我希望这是有道理的,下面是我的代码。

非常感谢

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Droppable - Revert draggable position</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.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>
<style>
#draggable, #draggable2 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
#draggable, #draggable1 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
</style>
<script>
$(function() {
$( "#draggable" ).draggable({ revert: "valid" });
$( "#draggable1" ).draggable({ revert: "valid" });
$( "#droppable" ).droppable({
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
});
</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
<p>I revert when I'm dropped</p>
</div>

<div id="draggable1" class="ui-widget-content">
<p>I revert when I'm dropped</p>
</div>

<div id="droppable" class="ui-widget-header">
<p>Drop me here</p>
</div>
</body>
</html>

【问题讨论】:

    标签: javascript jquery html drag-and-drop


    【解决方案1】:

    使用您提供的示例,试试这个:

    $(function() {
        $( "#draggable" ).draggable({ revert: "valid" });
        $( "#draggable1" ).draggable({ revert: "valid" });
        $( "#droppable" ).droppable({
            activeClass: "ui-state-hover",
            hoverClass: "ui-state-active",
            drop: function( event, ui ) {
                $( this )
                .addClass( "ui-state-highlight" )
                .find( "p" )
                .html( ui.draggable[0].id );
            }
        });
    });
    

    演示: http://jsfiddle.net/dirtyd77/SLGdE/23/

    【讨论】:

      【解决方案2】:

      您可以像这样从ui 对象中获取draggable 元素(被拖动的元素)的id:

      drop: function( event, ui ) {
          ui.draggable[0].id
      }
      

      Fiddle

      在您的示例中,您的完整 drop 回调将如下所示:

      drop: function (event, ui) {
          $(this)
              .addClass("ui-state-highlight")
              .find("p")
              .html("Dropped! " + ui.draggable[0].id);
      }
      

      【讨论】:

        猜你喜欢
        • 2011-06-03
        • 2011-10-31
        • 2013-09-01
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多