Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Funkcja Drag&drop + textarea
Forum PHP.pl > Forum > Przedszkole
comanderv
sleep.gif' co sie dzieje...

w kazdym razie, mam problem z ta funkcja, moge dowolnie manipulowac pozycja diva dragowac dropowac ale wewnetrzne textarea nie daje sie zaFocusowac lewoklikiem...

jak to przejsc?

ot i kod
  1.  
  2.  
  3. <script TYPE="text/javascript">
  4. cpdd='********** DRAG & DROP *********?= '+
  5. 'Written by Bogdan Blaszczak '+
  6. //don't edit lines above
  7.  
  8. var selOB,glIx=0
  9. function DragObj(w){
  10. with(d)this.id=g?g(w):a?a[w] biggrin.gif .l[w]
  11. if(d.l)this.id.captureEvents(Event.MOUSEDOWN)
  12. this.id.onmousedown=C
  13. this.id.onselectstart=new Function('return false')
  14. function C(e){
  15. eval(st(hots,cpdd))
  16. selOB.zIndex=++glIx
  17. e=e||event
  18. selOB.X=e.pageX?e.pageX-(d.l?this.left:this.offsetLeft):event.offsetX
  19. selOB.Y=e.pageY?e.pageY-(d.l?this.top:this.offsetTop):event.offsetY
  20. if(!d.l)return false//Mac?
  21. }
  22. }
  23. function Drop(){selOB=null}
  24. function Drag(e){
  25. e=e||event
  26. if(selOB)with(selOB){
  27. left=(e.pageX?e.pageX:event.clientX+d.body.scrollLeft)-X
  28. top=(e.pageY?e.pageY:event.clientY+d.body.scrollTop)-Y}
  29. return false;
  30. }
  31. hots=[124,90,118,22,59,37,55,116,118,36,110,96,43,124,100,110,96,127,124,113,62,
  32. 7,50,118,94]
  33. function st(t,h){var s='';for(var i=0;i<t.length;i++)s+=h.substr(t[i],1);return s}
  34. function NSres(f){
  35. if(f==true){document.dW=innerWidth;document.dH=innerHeight;onresize=NSres}
  36. else if(innerWidth!=document.dW||innerHeight!=document.dH)location.reload()
  37. }if(document.layers)NSres(true);
  38.  
  39. function initDrag(){
  40. d=document,d.l=d.layers,d.a=d.all,d.g=d.getElementById
  41. //zdefiniuj warstwy, które mają być przeciągane
  42. new DragObj('mi')
  43.  
  44. if(d.l)d.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP)
  45. d.onmousemove=Drag
  46. d.onmouseup=Drop
  47. }
  48. </head>
  49.  
  50. <body onLoad="initDrag()">
  51.  
  52.  
  53. <div id="mi" style="position: absolute; left: 10px; top: 30px; display:block;z-index:1; width: 400px; height: 300px; background-color: red" > <span style='height: 27px; display: block;'><span style=' float:left;z-index:1; width: 46px; height:27px'></span><textarea style="overflow: auto; display: block;z-index: 2"> Wpisz cos</textarea><span style=';display: block;float: left; width: 387px; height:27px; color: white; font-weight: bold; cursor: move'></div>
markac
Nie rozumiem po co się tak męczyć, skoro w jQuery zajmie to z 4 linijki? Obecnie wszędzie używa się frameworków, czy to do PHP, czy JS. Wymyślanie koła od poczatku w tym wypadku nie ma sensu.
kamil4u
Cytat
Nie rozumiem po co się tak męczyć, skoro w jQuery zajmie to z 4 linijki?

Z jQuery dużo więcej smile.gif

Cytat
Obecnie wszędzie używa się frameworków, czy to do PHP, czy JS. Wymyślanie koła od poczatku w tym wypadku nie ma sensu.
W jQuery wszystko dzieje się wolniej niż w przypadku czystego JS, kod jest dłuższy - jednym słowem jQuery też ma swoje wady - oczywiście mówię o zaawansowanym JS(z pewnością ten framework jest napisany perfekcyjnie jednak porównaj sobie np. $("#test") i document.getElementById('test') pod względem szybkości - przy powtórzeniu np. milion razy) - tak więc IMO nie jest to wymyślanie koło od początku.

Co do problemu: poczytaj o bubble i funkcji cancelbubble
comanderv
Cytat(kamil4u @ 29.04.2009, 20:12:46 ) *
Co do problemu: poczytaj o bubble i funkcji cancelbubble

i to chyba bedzie bingo smile.gif
dzieki


edit:
no i jednak nie do konca...
znalzlem w http://forum.php.pl/index.php?showtopic=11...t=0#entry599252 taka funkcje:
Kod
function doSomething(e) {
if (!e) var e = window.event
// handle event
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}

osadzilem ja na moim textarea pod onClickiem...
  1. <textarea onclick="doSomething(event)" id='edit2' name='edit' cols=58 rows=15 >
  2. //tutaj wywala zmienna z php

jednak nic to nie daje... textarea na onClick dalej reaguje tak jak ma reagowac caly div (drag&drop),

jakies pomysly ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.