2011-04-03 36 views
2

我有不同大小的模塊,我想佔位符是被拖動模塊的大小相同的,這是我迄今想通了......如何根據jQuery UI Sortable中的拖動對象更改拖放佔位符?

$("#col1, #col2, #col3").sortable({ 
    connectWith: ".col", 
    start: function(event, ui) { 
    var type = ui.item.hasClass("double") ? " double": ""; 
    }, 
    placeholder: "module drop" + type 
}).disableSelection(); 

我的問題是我m試圖在開始範圍之外使用var「type」,但我無法想出任何其他方式來做這件事。

如果有人想玩弄的代碼,我已經在這裏建立了一個小提琴: http://jsfiddle.net/TfcQq/

回答

1

根據jQuery UI的文檔(http://jqueryui.com/demos/sortable/#placeholder),有一個佔位符的制定者。 請注意值中的空格,看起來像是一個css類。

所以,你可以嘗試:

$("#col1, #col2, #col3").sortable({ 
    connectWith: '.col' 
}).disableSelection(); 

$(".module").mouseover(function(){ 
    $("#col1, #col2, #col3").sortable("option", "placeholder", 'drop-single'); 
}); 

$(".module.double").mouseover(function(){ 
    $("#col1, #col2, #col3").sortable("option", "placeholder", 'drop-double'); 
}); 
+0

感謝您的幫助馬修,我嘗試過,但似乎jQuery UI的重新實例的排序情況,直到你完成拖動,所以如果你玩的這個HTTP後://jsfiddle.net/bGkMN/你會注意到它做了它應該爲*之前的拖動*。 – Duopixel 2011-04-03 18:44:53

+0

更新你的小提琴和我的答案!你可能想調整選擇器,但我認爲你明白了。 – mathieu 2011-04-03 19:28:11

+0

啊,非常聰明!非常感謝,現在正在工作。 – Duopixel 2011-04-04 00:43:47