【问题标题】:jQuery UI draggable+sortable keep draggable's cssjQuery UI draggable+sortable 保持draggable的css
【发布时间】:2013-02-18 06:37:16
【问题描述】:

当使用 jQuery UI draggable+sortable 时,draggable 元素在放入 sortable 时会丢失它的 css。这是我的代码,这是js fiddle demo

尝试将可拖动的 div 放入 sortable 并查看它是否丢失了(在这种情况下)背景颜色和边框。有没有可能防止这种情况发生?

<script>
    $("#content").sortable({
        revert:true
    });
    $( "#draggable" ).draggable({
      connectToSortable: "#content",
      revert: "invalid",
      stop: function(event,ui) {
        $(ui.item).attr('id','draggable');
      }
    });
</script>
<style>
 #content {width:150px;}
 #draggable {   
    width:50px;
    height:50px;
    border:1px solid red;
    background-color:blue;} 
 .text {
    min-height:100px;
    width:100%;
    border:1px solid red;

    background-color:red;
 }
</style>
<div id="content">
    <div class="text">Item</div>
    <div class="text">Item</div>
    <div class="text">Item</div>
    <div class="text">Item</div>
    <div class="text">Item</div>
    <div class="text">Item</div>
</div>

【问题讨论】:

  • 使用helper:"clone" 或返回将在拖动时使用的domElement 的函数可以避免这种行为。

标签: css jquery-ui draggable jquery-ui-sortable


【解决方案1】:

或者如果您需要 ID 用于其他用途,您可以将此代码添加到您的可排序调用中:

  beforeStop: function (event, ui) { 
      newItem = ui.item;
  },
  receive: function(event,ui) {
      $(newItem).attr("id","draggable");     
  }

更新小提琴:http://jsfiddle.net/y6KHn/5/

jquery: how to update draggable clone id?

【讨论】:

    【解决方案2】:

    拖拽会丢失ID。您可以通过将 css 附加到一个类来解决此问题。
    在您的 html 中:

    <div id="draggable" class="dragclass">Drag</div>
    

    在css中:

     .dragclass {   
        width:50px;
        height:50px;
        border:1px solid red;
        background-color:blue;}
    

    查看更新的小提琴: http://jsfiddle.net/y6KHn/2/

    【讨论】:

    • 将元素拖到可排序区域上,然后拖到它外面的某个地方。然后放下它。元素不会返回到它的初始状态。
    • 不确定你的意思 - 它保持了它的风格和类。你是说可排序列表向上移动吗?
    猜你喜欢
    • 2012-01-14
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2011-09-11
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多