2012-03-01 92 views
5

我嘗試了很多東西,但不成功:(我有兩個可排序的列表相互連接,事情是列表'A'可以接受任何列表項目,但列表'B'只能接受上課=「ABC」項目拒絕排序列表中的無效排序項目

其代碼

<ul id='A'> 
    <li>item A1</i> 
    <li>item A2</i> 
    <li class='abc'>item A3</i> 
</ul> 

<ul id='B'> 
    <li class='abc'>item A1</i> 
</ul> 

我試圖jQuery代碼是

$('#A').sortable({revert: true, connectWith: '#B'}) 
$('#B').sortable({revert: true, connectWith: '#A', over: function(event, ui){ 
    if(!ui.item.hasClass('abc')){ 
    ui.placeholder.addClass('ui-state-error'); 
    ui.sender.sortable('cancel'); 
    } 
}}) 

請指引我在哪裏,我錯了,感謝

回答

4

你可以嘗試使用,而不是接收事件,雖然這是一個有點延遲做這和addClass不工作:

$('#A').sortable({revert: true, connectWith: '#B'}) 
$('#B').sortable({revert: true, connectWith: '#A', 
    receive: function(event, ui){ 
     if(!ui.item.hasClass('abc')){ 
      $(ui.placeholder).addClass('ui-state-error');      
      $(ui.sender).sortable('cancel'); 
     }} 
})​;​ 

示例 - http://jsfiddle.net/b5ykK/1/

+0

哇!令人驚歎:)還有一件事,我們可以讓恢復轉換順利嗎?它馬上回來 – makki 2012-03-01 13:37:58

+0

@makki它看起來不像它。您可以將其作爲另一個問題發佈,看看是否有人知道。 – 2012-03-01 13:43:39