2013-02-18 305 views
1

当使用jQuery UI可拖曳+排序时,可拖曳元素在放入可排序时丢失了css。这里是我的代码,这里是一个js fiddle demojQuery UI可拖曳+排序保持可拖拽的css

尝试将可拖动的div放入可排序的列表中,并看到它丢失了(在本例中)背景颜色和边框。是否有可能防止这种情况发生?

<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> 
+0

这种行为可以使用辅助函数来避免。 – lam3r4370 2013-02-21 22:55:57

回答

1

该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/

+0

将元素拖放到可排序区域,然后将其拖到外面的某处。然后放下它。元素不会返回到初始状态。 – lam3r4370 2013-02-18 07:31:33

+0

不确定你的意思 - 它保持其风格和类。你在谈论排序的列表吗? – goodmanship 2013-02-18 07:43:00

+0

这就是我的意思 - http://screencast-o-matic.com/watch/cInFiJVIME – lam3r4370 2013-02-18 07:50:21