Update of /cvsroot/dynapi/dynapi/src/lib/dynapi/api In directory usw-pr-cvs1:/tmp/cvs-serv25601 Modified Files: events.js Log Message: I fixed IEs event problems ( I hope ) The problem was in the eventmethod. Looking for realsrc accessing the e.srclement is wrong, because depending on the contents of the layer that object would be a TD, FONT or any tag, which does not have a lyrobj reference set. The event now searches for the parent layer with a lyrobj reference instead of merely looking at the current element. Index: events.js =================================================================== RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/api/events.js,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** events.js 2001/01/09 05:37:01 1.9 --- events.js 2001/01/11 10:20:55 1.10 *************** *** 89,112 **** DynLayer.prototype.EventMethod = function(e) { var dyndoc=this.lyrobj.dyndoc; if (is.ie) { var e=dyndoc.elm.event; e.cancelBubble=true; if (e.type=="click" && DynAPI.wasDragging) { ! e.cancelBubble=true; DynAPI.wasDragging=false; return true; } ! if (e.type!="mouseout" && e.type!="mouseover") e.cancelBubble=true; if (e.type=="mouseout" && this.contains(e.toElement)) return true; if (e.type=="mouseover" && this.contains(e.fromElement)) return true; } ! var realsrc=is.ie ? e.srcElement:e.target; ! var which=(is.ie||is.ns5)?e.button:e.which; ! var src=realsrc.lyrobj||this.lyrobj; ! if (!src) return true; ! var evt=dyndoc._e; ! evt.setEvent(src,e); ! var type=evt.type; ! src.invokeEvent(type,evt); if (e.type=="mouseover" || e.type=="mouseout") return false; evt.bubbleEvent(); --- 89,118 ---- DynLayer.prototype.EventMethod = function(e) { var dyndoc=this.lyrobj.dyndoc; + if (is.ie) { var e=dyndoc.elm.event; e.cancelBubble=true; if (e.type=="click" && DynAPI.wasDragging) { ! //e.cancelBubble=true; redundant DynAPI.wasDragging=false; return true; } ! //if (e.type!="mouseout" && e.type!="mouseover") e.cancelBubble=true; redundant if (e.type=="mouseout" && this.contains(e.toElement)) return true; if (e.type=="mouseover" && this.contains(e.fromElement)) return true; } ! ! var realsrc=is.ie?e.srcElement:e.target ! var which=(is.ie||is.ns5)?e.button:e.which ! ! // In IE, search for parent div, if any, because it will have a reference to the DynLayer ! for(;is.ie && !realsrc.lyrobj && realsrc.parentElement && realsrc.parentElement!=realsrc;realsrc=realsrc.parentElement); ! ! var src = realsrc.lyrobj||dyndoc ! if (!src) return true ! var evt=dyndoc._e ! evt.setEvent(src,e) ! var type=evt.type ! src.invokeEvent(type,evt) if (e.type=="mouseover" || e.type=="mouseout") return false; evt.bubbleEvent(); *************** *** 133,137 **** orig=e.orig; e.cancelBubble=false; ! } if (is.ns4 && is.platform=="other") { if (type=="mousedown") { --- 139,143 ---- orig=e.orig; e.cancelBubble=false; ! } if (is.ns4 && is.platform=="other") { if (type=="mousedown") { _______________________________________________ Dynapi-CVS mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/dynapi-cvs