UI/API/1.8/Droppable
綜述
jQuery的UI Droppable plugin 讓選定元素具有droppable的屬性(意思就是他們可以接受被draggables放開的元素)。你也可以指定要接受哪些draggable放開的元素。所有的回調(start, stop, drag)接受兩個參數:原始的瀏覽器事件(event),ui對象,參考以下的內容:
- ui.draggable -目前可以被拖曳的元素,是一個jQuery物件
- ui.helper -當前可拖放助手,是一個jQuery物件
- ui.position -draggable helper目前的位置{ top: , left: }
- ui.offset -draggable helper目前的絕對位置{ top: , left: }
選項
disable | ||
| ||
禁用(true)或允許(false)物件droppable屬性。 可以在初始化的時候設定(第一次創建)draggable。 | ||
Code examples | ||
初始化droppable物件的 disabled選項 | ||
$( ".selector" ).droppable({ disabled: true }); | ||
在初始化之後取得或設定disabled選項 | ||
//獲取 var disabled = $( ".selector" ).droppable( "option", "disabled" ); //設定 $( ".selector" ).droppable( "option", "disabled", true ); |
accept | ||
| ||
droppable會接受所有selector選擇的draggable物件。 如果參數為Function,每一次draggable的時候都會呼叫這個指定的Function。 如果這個draggable動作是可以被接受的,那麼這個Function就要回傳true。 | ||
Code examples | ||
初始化droppable物件的accept選項 | ||
$( ".selector" ).droppable({ accept: '.special' }); | ||
在初始化之後取得或設定accept選項 | ||
//獲取 var accept = $( ".selector" ).droppable( "option", "accept" ); //設定 $( ".selector" ).droppable( "option", "accept", '.special' ); |
activeClass | ||
| ||
當draggable正在執行的時候,指定的activeClass會被加入。 | ||
Code examples | ||
初始化droppable物件的activeClass選項 | ||
$( ".selector" ).droppable({ activeClass: 'ui-state-highlight' }); | ||
在初始化之後取得或設定activeClass選項 | ||
//獲取 var activeClass = $( ".selector" ).droppable( "option", "activeClass" ); //設定 $( ".selector" ).droppable( "option", "activeClass", 'ui-state-highlight' ); |
addClasses | ||
| ||
如果參數設定為false,就不會增加 ui-draggable 這個類別。 這是以效能最佳化作為目標 。draggable() 會對許多元素作初始化。 | ||
Code examples | ||
初始化droppable物件的addClasses選項 | ||
$( ".selector" ).droppable({ addClasses: false }); | ||
在初始化之後取得或設定addClasses選項 | ||
//獲取 var addClasses = $( ".selector" ).droppable( "option", "addClasses" ); //設定 $( ".selector" ).droppable( "option", "addClasses", false ); |
greedy | ||
| ||
如果參數設定為true,則不允許巢狀的droppable。 舉例來說,若有兩層div物件(都是droppable的),將一個draggable物件拖曳至內層div時, 參數設定為true則外層不會觸發dropped,若參數設定為false則外層會觸發dropped。 | ||
Code examples | ||
初始化droppable物件的greedy選項 | ||
$( ".selector" ).droppable({ greedy: true }); | ||
在初始化之後取得或設定greedy選項 | ||
//獲取 var greedy = $( ".selector" ).droppable( "option", "greedy" ); //設定 $( ".selector" ).droppable( "option", "greedy", true ); |
hoverClass | ||
| ||
如果指定了這個參數, 拖曳draggable物件經過至droppable物件上方的時候,指定的class會增加到droppable物件上。 | ||
Code examples | ||
初始化droppable物件的hoverClass選項 | ||
$( ".selector" ).droppable({ hoverClass: 'drophover' }); | ||
在初始化之後取得或設定hoverClass選項 | ||
//獲取 var hoverClass = $( ".selector" ).droppable( "option", "hoverClass" ); //設定 $( ".selector" ).droppable( "option", "hoverClass", 'drophover' ); |
scope | ||
| ||
用於配對draggable物件和droppable物件。 除了droppable指定的accept物件以外, 和droppable擁有相同scope的draggable物件也同樣可以被droppable物件接受。 | ||
Code examples | ||
初始化droppable物件的scope選項 | ||
$( ".selector" ).droppable({ scope: 'tasks' }); | ||
在初始化之後取得或設定scope選項 | ||
//獲取 var scope = $( ".selector" ).droppable( "option", "scope" ); //設定 $( ".selector" ).droppable( "option", "scope", 'tasks' ); |
tolerance | ||
| ||
選擇一種模式,來判斷一個draggable物件是否有"經過"一個droppable物件。 可接受的參數:'fit', 'intersect', 'pointer', 'touch' fit :draggable物件和droppable完全重疊 intersect :draggable 和droppable至少重疊50% pointer :滑鼠指標重疊droppable touch :draggable和droppable有任何重疊 | ||
Code examples | ||
初始化droppable物件的tolerance選項 | ||
$( ".selector" ).droppable({ tolerance: 'fit' }); | ||
在初始化之後取得或設定tolerance選項 | ||
//獲取 var tolerance = $( ".selector" ).droppable( "option", "tolerance" ); //設定 $( ".selector" ).droppable( "option", "tolerance", 'fit' ); |
事件
activate | |
| |
這個事件會在任何一個draggable物件開始拖曳的時候觸發。 例如在開始拖曳一個draggable物件的時候,我們可以讓可以接受的droppable物件亮起來。 | |
Code examples | |
初始化 activate 事件 | |
$( ".selector" ).droppable({ activate: function(event, ui) { ... } }); | |
綁定 activate 事件 | |
$( ".selector" ).bind( "dropactivate", function(event, ui) { ... }); |
deactivate | |
| |
這個事件會在可接受的draggable物件停止拖曳的時候觸發。 | |
Code examples | |
初始化 deactivate 事件 | |
$( ".selector" ).droppable({ deactivate: function(event, ui) { ... } }); | |
綁定 deactivate 事件 | |
$( ".selector" ).bind( "dropdeactivate", function(event, ui) { ... }); |
over | |
| |
這個事件會在draggable物件"經過"droppable物件的時候觸發(經過的定義參考tolerance屬性) | |
Code examples | |
初始化 over 事件 | |
$( ".selector" ).droppable({ over: function(event, ui) { ... } }); | |
綁定 over 事件 | |
$( ".selector" ).bind( "dropover", function(event, ui) { ... }); |
out | |
| |
這個事件會在一個draggable物件離開一個droppable的時候觸發 (離開的定義參考tolerance屬性) | |
Code examples | |
初始化 out 事件 | |
$( ".selector" ).droppable({ out: function(event, ui) { ... } }); | |
綁定 out 事件 | |
$( ".selector" ).bind( "dropout", function(event, ui) { ... }); |
drop | |
| |
這個事件會在draggable物件填入droppable物件的時候觸發。 在回調函數中,$(this)代表已經被draggable物件填充的droppable物件。 ui.draggable代表draggable物件。 | |
Code examples | |
初始化 drop 事件 | |
$( ".selector" ).droppable({ drop: function(event, ui) { ... } }); | |
綁定 drop 事件 | |
$( ".selector" ).bind( "drop", function(event, ui) { ... }); |
方法
destroy | |
| |
完全移除droppable的功能。讓元素回到初始狀態。 |
disable | |
| |
禁止droppable的功能。 |
enable | |
| |
啟用droppable。 |
option | |
| |
獲取或設置任何droppable的選項。如果沒有指定值,將作為一個 getter。 |
option | |
| |
一次設定多個option,必須傳入一個option物件 |
widget | |
| |
回傳 .ui-droppable物件 |
沒有留言:
張貼留言