2011-07-09 62 views
1


林製作與mootools的一個拖放系統drag.move類,但我需要所有的可拖動和投擲的元素,有一些額外的變數,也許在增加一個或兩個功能。香港專業教育學院研究瞭如何做到這一點使用.implement但Ive得到了不知道如何它放到我的代碼:Mootools的 - 添加變量所有可拖動和投擲的元素與.implement

window.addEvent('domready', function(){ 

$$('#draggables DIV').makeDraggable({ 

droppables: $$('#droppables DIV'), 

onEnter: function(draggable, droppable){ 
    droppable.setStyle('background', 'orange'); 
    droppable.setStyle('opacity', '0.4'); 
    snap_left = droppable.getStyle('left'); 
    snap_top = droppable.getStyle('top'); 
    document.getElementById("slot").innerHTML=droppable.id; 
}, 

onLeave: function(draggable, droppable){ 
    droppable.setStyle('background', null); 
}, 

onDrop: function(draggable, droppable){ 

    if (droppable){ 
     droppable.setStyle('background', ''); 
     draggable.setStyle('left', snap_left); 
     draggable.setStyle('top', snap_top);     
    } else { 
     draggable.setStyle('left', snap_left); 
     draggable.setStyle('top', snap_top); 
    } 
} 

}); 

}); 

就是我想要更多鈔票使用.implement?
我可以將這些東西添加到所有可拖動和可拖動的元素嗎?
ty提前!

-Thaiscorpion

編輯:
伊夫試圖直接將選項中的mootools庫中的主類,並試圖從事件的OnEnter他們accesing像這樣:

 
    onEnter: function(draggable, droppable){

if (droppable.occupied){ //here is where im tryin to acces it, the default option is set to occupied: true droppable.setStyle('background', 'red'); droppable.setStyle('opacity', '0.4'); document.getElementById("slot").innerHTML=droppable.id; } else { droppable.setStyle('background', 'orange'); droppable.setStyle('opacity', '0.4'); snap_left = droppable.getStyle('left'); snap_top = droppable.getStyle('top'); document.getElementById("slot").innerHTML=droppable.id; } },

但沒有得到任何工作。

回答

1

您可以使用元素存儲。

draggable.store("occupied", true); 

....

if (draggable.retrieve("occupied") === true) { 

} 

....函數或任何可以存儲每個元素

element.store("somekey", function() { 
    element.toggleClass("foo"); 
}); 

element.retrieve("somekey").call(element); 

等等。

使用實施:

Element.implement({ 
    dragfoo: function() { 
     this.set("drag", { }); 
     return this; 
    } 
}); 

// allows you: 

$("someid").dragfoo(); 

但如果你需要儲存,使用和儲存的實際元素上不存儲屬性。 mootools存儲實際上使用了一個閉包後面的對象散列表。在IE中擁有專有的元素屬性/屬性會在元素訪問中顯着降低速度。

相關問題