ulf: drag & drop - shit, ie funzt nicht.....

hallo,

folgendes einfaches script:
ns = (document.layers) ? 1:0;
ie = (document.all) ? 1:0;
function init() {
document.onmousedown = mDOWN;
document.onmousemove = mMOVE;
document.onmouseup = mUP;

if (ns)
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
if (ns) {
    ebene = document.menu1;
    ebene.xpos = ebene.left;
    ebene.ypos = ebene.top;
 ebene.w = ebene.clip.width;
    ebene.h = ebene.clip.height;
}
else {
    ebene = menu1.style;
    ebene.xpos = ebene.pixelLeft;
    ebene.ypos = ebene.pixelTop;
    ebene.w = ebene.pixelWidth;
    ebene.h = ebene.pixelHeight;
    }

}
var mausKlick = 0;
function mDOWN(e) {
if ((ns && e.which == 1) || ie) {
     if (ns) {var x=e.pageX; var y=e.pageY;}
     else {var x=event.x; var y=event.y;}
     if (x>=ebene.xpos && x<=ebene.xpos+ebene.w && y>=ebene.ypos && y<=ebene.ypos+ebene.h) {
     KlickX = x-ebene.xpos;
     KlickY = y-ebene.ypos;
  mausKlick = 1;
    }
  }
}

function mMOVE(e) {
   if (ns) {var x=e.pageX; var y=e.pageY;}
   else {var x=event.x; var y=event.y;}
     if (mausKlick) {
     ebene.xpos = x-KlickX;
     ebene.ypos = y-KlickY;
     ebene.left = ebene.xpos;
     ebene.top = ebene.ypos;
   }

}

function mUP(e) {
                if (ns) {var x=e.pageX; var y=e.pageY;}
                if (ie) {var x=event.x; var y=event.y;}
                mausKlick = 0;
        }

also im nn4 keine probleme. im opera (als ie) auch keine probleme. das script w3c-dom auszubauen wäre kein problem. nur im ie funzt das überhaupt nicht. er meckeert nicht einmal. was übersehe ich ?

thx

ull

  1. hallo,

    folgendes einfaches script:
    ns = (document.layers) ? 1:0;
    ie = (document.all) ? 1:0;
    function init() {
    document.onmousedown = mDOWN;
    document.onmousemove = mMOVE;
    document.onmouseup = mUP;

    if (ns)
    document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
    if (ns) {
        ebene = document.menu1;
        ebene.xpos = ebene.left;
        ebene.ypos = ebene.top;
    ebene.w = ebene.clip.width;
        ebene.h = ebene.clip.height;
    }
    else {
        ebene = menu1.style;
        ebene.xpos = ebene.pixelLeft;
        ebene.ypos = ebene.pixelTop;
        ebene.w = ebene.pixelWidth;
        ebene.h = ebene.pixelHeight;
        }

    else if (ie) {}

    }
    var mausKlick = 0;
    function mDOWN(e) {
    if ((ns && e.which == 1) || ie) {
         if (ns) {var x=e.pageX; var y=e.pageY;}
         else {var x=event.x; var y=event.y;}
         if (x>=ebene.xpos && x<=ebene.xpos+ebene.w && y>=ebene.ypos && y<=ebene.ypos+ebene.h) {
         KlickX = x-ebene.xpos;
         KlickY = y-ebene.ypos;
      mausKlick = 1;
        }
      }
    }

    function mMOVE(e) {
       if (ns) {var x=e.pageX; var y=e.pageY;}
       else {var x=event.x; var y=event.y;}
         if (mausKlick) {
         ebene.xpos = x-KlickX;
         ebene.ypos = y-KlickY;
         ebene.left = ebene.xpos;
         ebene.top = ebene.ypos;
       }

    }

    function mUP(e) {
                    if (ns) {var x=e.pageX; var y=e.pageY;}
                    if (ie) {var x=event.x; var y=event.y;}
                    mausKlick = 0;
            }

    also im nn4 keine probleme. im opera (als ie) auch keine probleme. das script w3c-dom auszubauen wäre kein problem. nur im ie funzt das überhaupt nicht. er meckeert nicht einmal. was übersehe ich ?

    thx

    ull

    der else if Fall für den IE fehlte ganz, wodurch dein Script einfach beendet wurde, da der IE nichts zu tun hatte, deswegen auch keine Fehlermeldung.

    Gruß
    Raphael

    1. hallo,

      folgendes einfaches script:
      ns = (document.layers) ? 1:0;
      ie = (document.all) ? 1:0;
      function init() {
      document.onmousedown = mDOWN;
      document.onmousemove = mMOVE;
      document.onmouseup = mUP;

      if (ns)
      document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
      if (ns) {
          ebene = document.menu1;
          ebene.xpos = ebene.left;
          ebene.ypos = ebene.top;
      ebene.w = ebene.clip.width;
          ebene.h = ebene.clip.height;
      }
      else {
          ebene = menu1.style;
          ebene.xpos = ebene.pixelLeft;
          ebene.ypos = ebene.pixelTop;
          ebene.w = ebene.pixelWidth;
          ebene.h = ebene.pixelHeight;
          }
      else if (ie) {}

      }
      var mausKlick = 0;
      function mDOWN(e) {
      if ((ns && e.which == 1) || ie) {
           if (ns) {var x=e.pageX; var y=e.pageY;}
           else {var x=event.x; var y=event.y;}
           if (x>=ebene.xpos && x<=ebene.xpos+ebene.w && y>=ebene.ypos && y<=ebene.ypos+ebene.h) {
           KlickX = x-ebene.xpos;
           KlickY = y-ebene.ypos;
        mausKlick = 1;
          }
        }
      }

      function mMOVE(e) {
         if (ns) {var x=e.pageX; var y=e.pageY;}
         else {var x=event.x; var y=event.y;}
           if (mausKlick) {
           ebene.xpos = x-KlickX;
           ebene.ypos = y-KlickY;
           ebene.left = ebene.xpos;
           ebene.top = ebene.ypos;
         }

      }

      function mUP(e) {
                      if (ns) {var x=e.pageX; var y=e.pageY;}
                      if (ie) {var x=event.x; var y=event.y;}
                      mausKlick = 0;
              }

      also im nn4 keine probleme. im opera (als ie) auch keine probleme. das script w3c-dom auszubauen wäre kein problem. nur im ie funzt das überhaupt nicht. er meckeert nicht einmal. was übersehe ich ?

      thx

      ull

      der else if Fall für den IE fehlte ganz, wodurch dein Script einfach beendet wurde, da der IE nichts zu tun hatte, deswegen auch keine Fehlermeldung.

      Gruß
      Raphael

      ups,
      meinte else if für capture event meine ich natürlich, wodurch dann deine bisherige else für IE dann an der falschen Stelle steht