onMouseOver-Event bei drag und drop
chris
- javascript
0 script-fabrik0 chris0 script-fabrik0 chris
hi,
wenn ich drag und drop implementiere, dann scheint es so, als ob mir drag u. drop das onMouseOver-event ueberschreibt.
weiss jemand eine loesung, wie ich waehrend des drag-vorgangs trotzdem die onMouseOver-Events fuer die vorhandenen objekte (z.B. graphiken hilite, ...) wieder aktiviere, oder dass mir das drag u drop das event nicht ueberschreibt.
beispiel: ich ziehe ein objekt auf ein anderes - und wenn ich auf dem anderen objekt bin, soll es z.b. in einer anderen farbe dargestellt werden oder der cursor soll sich verändern. funktioniert ohne drag u drop super (wenn ich nur mit der maus ueber das objekt fahre). aber sobald ich die linke maustaste gedrueckt halte klappt nichts mehr.
hat wer eine loesung??
DANKE
mfg, chris
es ist das folgende problem: die maus ist über dem bild, somit ist das OnMouseover-event auch beim bild zu suchen. am besten wäre, wenn du das Element dropst, daß das element zurück an die ale position zurückgeschickt wird, somit hast du das onmouseover auf der drop-position, oder du machst es so, daß emelemnt.top = event.y+5;element.left = event.x + 5;
so ist die mouse "frei" und es können auch andere elemente ein OnMouseover bekommen.
------------------------------------
http://www.script-fabrik.de
danke fuer den tipp!
dein 2ter vorschlag ware genau die loesung fuer mich.
ich bin leider noch etwas neu in JavaScript - wo schreibe ich den von dir angefuehrten code hin??
element.top = event.y+5;
element.left = event.x + 5;
danke
mfg, chris
dieser code kommt genau dann, wenn du dragst
like
function drag()
{
...
element.top = event.y+5;
element.left = event.x + 5;
}
--------------------------------------
http://www.script-fabrik.de
hi - vorerst danke fuer die raschen vorschlaege,
ich habe folgenden code, wo das leider nicht funktioniert - hab ich von irgendeiner homepage. das ganze habe ich in eine .js-datei geschrieben und dann in der html-seite includiert (<script src="js/drag.js"></script>)
irgendwo in der html-seite steht das objekt, wo ich das onMouseOver-Event habe. Leider passiert dieses Event nicht, wenn wenn ich mit gedrückter maustaste darueberfahre.
.
.
.
<td style="font-size:18pt" onmouseover="this.style.backgroundColor='Yellow'">Selected Item</td>
.
.
.
--> da habe ich deinen Vorschlag eingebaut.
var dragapproved=false;
var z,x,y;
document.onmousedown=drags;
document.onmouseup=drop;
function drags()
{
if (!document.all)
return
if (event.srcElement.className=="drag")
{
dragapproved=true
z=event.srcElement
z.top = event.y+20; // dein vorschlag
z.left = event.x + 20; // dein vorschlag
temp1=z.style.pixelLeft
temp2=z.style.pixelTop
x=event.clientX
y=event.clientY
document.onmousemove=move
}
}
function move()
{
if (event.button==1&&dragapproved)
{
z.style.pixelLeft=temp1+event.clientX-x
z.style.pixelTop=temp2+event.clientY-y
return false
}
}
function drop()
{
dragapproved=false;
if(z!=null)
{
z.style.pixelLeft=temp1;
z.style.pixelTop=temp2;
}
}
in meiner HTML-Seite includiere ich diese .js-datei.
die onMouseOver-Events funktionieren leider bei drag u drop
dann immer noch nicht.
was mache ich hier falsch????
nochmals danke
mfg, chris
function drag()
{
...
element.top = event.y+5;
element.left = event.x + 5;
}