www.WebTips.pl: [mintAjax]DropZone i DragObject - www.WebTips.pl

Skocz do zawartości


Strona 1 z 1

[mintAjax]DropZone i DragObject Inicjowanie elementów DragObject przy tworzeniu

#1 Użytkownik nie jest zalogowany   drOdpowiedź 

  • Junior
  • Pip
  • Grupa Użytkownik
  • Postów 49
  • Rejestracja 05 sty 07
  • Miejscowośćlocalhost

Napisano 15 marzec 2010 - 23:55

Cytat

Witam,

mam następujący problem. Korzystając z biblioteki mintAjax zrobiłem DropZone i DragObject. Mniej więcej tak:
<ul id="dropzone">
<li id="dragobject0"></li>
<li id="dragobject1"></li>
<li id="dragobject2"></li>
<li id="dragobject3"></li>
<li id="dragobject4"></li>
</ul>


Na stronce biblioteki jest przykład, że elementy pierwotnie znajdują się poza kontenerem i dopiero po przeciągnięciu można ja tam wrzucić. To przeciągnięcie(a właściwie moment kliknięcia) jakby inicjuje elementy które z tych elementów statycznych stają się AJAX'owe(jeśli coś źle mówię to proszę poprawiać). z elementów statycznych stają się AJAX'owe chodzi mi o to, że jeżeli wygeneruję te elementy już w środku kontenera dropzone to dopiero po kliknięciu na dany element staje się ruchomy(Problem z tym, że nie kliknięte elementy nie uciekają przed innym elementem którym na nie najeżdżamy - a powinny. Dzieje się to dopiero gdy je klikniemy i zostaną jakby zainicjowane jako ruchome elementy kontenera).


Ktoś zna jakieś rozwiązanie problemu?
Mam nadzieję, że w miarę jasno opisałem problem:D


Dziękuję, Pozdrawiam

P.S. http://mintajax.pl/D...cja/DragObject/ | http://mintajax.pl/D...tacja/DropZone/ | http://mintajax.pl/P...ik/Drag-n-Drop/


Problem rozwiązany, jak znajdę chwilę to wrzucam rozwiązanie:D



A więc, aby wszystko ładnie działało trzeba zainicjować elementy po dodaniu do DropZone.

Więc mamy naszą listę:
<ul id="dropzone">
<li id="dragobject0"></li>
<li id="dragobject1"></li>
<li id="dragobject2"></li>
<li id="dragobject3"></li>
<li id="dragobject4"></li>
</ul>


Element <ul></ul> jest naszym DropZone'm a kolejne elementy <li></li> są obiektami Drag&Drop które możemy przeciągać&upuszczać:D

W kodzie js inicjujemy DropZone
mint.gui.RegisterDropZone("dropzone");


Potem inicjujemy element li jako D&D
mint.gui.RegisterDragObject('dragobject1').SetBBox("dropzone");
mint.gui.RegisterDragObject('dragobject2').SetBBox("dropzone");
mint.gui.RegisterDragObject('dragobject3').SetBBox("dropzone");
mint.gui.RegisterDragObject('dragobject4').SetBBox("dropzone");

i dodatkowo ustalamy BBox odpowiednią metodą aby nie dało wyciągnąć się elementów poza dropzone(patrz: Dokumentacja)

Tak i to jest moment w którym jest dropzone i elementy w nim, ale aktywują się dopiero po kliknięciu. Trzeba je zainicjować.
Do tego uzyjemy uproszczonej metody LoadItems z biblioteki mintAjax. Metoda LoadItems istniejąc w bibliotece, ładuje elementy z adresu url, my zrobimy tak, że będzie je ładować z listy(kolejne element oddzielone ','):
LoadItemsList: function(list) {
     var that = this;
     var list1 = list.split(",");

     for(var i in list) {
	 if($D(list1[i]) && $D(list1[i]).dragObject) that.InsertItem(list1[i]);
     }
			
     that.onloadDone(list1);
},


Metoda należy wkleić do pliku z biblioteką mintAjax najlepiej pod metodą LoadItems. Teraz należy do naszego kodu js dopisać jeszcze
var list = dragobject1,dragobject2,dragobject3,dragobject4;
dropZone.LoadItemsList(list);


I wszystko powinno działać:D

Mam nadzieję, że opisałem wszystko w miarę przejrzyście. Do poprawnego działania oczywiście należy do pliku html dołączyć bibliotekę mintAjax. I oczywiście przydało by się formatowanie elementów listy w CSS(najlepiej nadać im atrybut display: block;). Może kiedyś się komuś przyda.


Pozdrawiam:D

P.S. Nie robiłem już ostatecznego podsumowania w stylu cały kod razem żeby post nie był nie wiadomo jak długi, jeśli jest jednak potrzebne mogę dodać:D
Pobierz mp3 za darmo, Wyszukiwarka mp3 - 320bit.com
0

Strona 1 z 1


Szybka odpowiedź

  

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych