2012-09-23 43 views
0

我想让第一个可排序列表中的div - “small_box”始终不可见。我试着用jquery第一次(),但只有一次,只有一个和相同的元素,每当它被拖动。我如何简单地将它拖回到可见的位置,然后将其拖到第一位以外的位置,然后使首先跳入的项目变为隐形“small_box”?jquery ui sortable,第一个项目中的div块不可见

我把活生生的例子在这里:http://jsfiddle.net/kriskasper/3knnn/

<ul id="sortable" class='connectedSortable'> 
<li> 
    <div class="small_box">small box</div>  
    <div class="big_box">big box</div> 
</li>   
<li> 
    <div class="small_box">small box</div>  
    <div class="big_box">big box</div> 
</li>   
<li> 
    <div class="small_box">small box</div>  
    <div class="big_box">big box</div> 
</li> 

<li> 
    <div class="small_box">small box</div>  
    <div class="big_box">big box</div> 
</li>  
</ul> 

这里是jQuery用户界面功能:

$(function() { 
    $("#sortable").sortable({ 
     connectWith: ".connectedSortable", 
     placeholder: "ui-state-highlight", 
     forcePlaceholderSize: true, 
     opacity: 0.6, 
     revert: 70 

    }); 
}); 

请帮助。

回答

0

你应该玩排序插件事件。当连接元素收到一个项目时,sortreceive事件被触发。我的猜测是类似...

$("#sortable").bind("sortreceive", function(event, ui) { 
    $(".connectedSortable .small_box").show(); 
    $("#sortable .small_box").first().hide(); 
}); 
+0

我用这个: '$(函数(){$ ( “#sortable”).sortable({ connectWith: “.connectedSortable”, 占位符: “UI-状态高亮”, forcePlaceholderSize:真, 不透明度:0.6, 复归:70 }); $( “#排序”)结合( “sortreceive”,功能(事件,UI)。 {(“。connectedSortable .small_box”)。show(); $(“#sortable .small_box”)。first ()。隐藏(); }); });' 但它不工作,我不知道我做错了什么。 [ttp://jsfiddle.net/3knnn/4/](http://jsfiddle.net/3knnn/4/) – kris

+0

你让我感到困惑与connectedSortable,你没有使用,因为你只有一个名单。你可以用一个简单的css来解决这个问题'ul li:first-child .small_box {display:none; }' – markz

+0

看看这两个小提琴。一个用css,另一个用js。 http://jsfiddle.net/3knnn/11/和http://jsfiddle.net/3knnn/14/ – markz

相关问题