日期:2014-05-16  浏览次数:20444 次

JS里面有什么办法能把 事件提前到 onload前?在线等~~谢谢
我现在新 生成一个DIV和相应时间,我的感觉就是由于是动态生成的,既在onload 后生成DIV
所以有些事件出发不了,急

------解决方案--------------------
改了下 ,或许对你有些帮助

HTML code

<html> 
<head> 
</head> 
<script> 
/************************************************** 
我写的部分,setconfig就是新生成一个DIV 
然后用Drag.init(document.getElementById( "message ")); 使用封装类的函数(让它拖动) 
这个时候无效了??? 
代码可执行,大家帮我看看 
  **************************************************/ 
function   setConfig() 
{ 
        var   str       =       " "   
      +   " <div   id=message   " 
      +   "style= " 
        +   "width:50; " 
      +   "height:60; " 
      +   "background-color:lightyellow; " 
      +   "> " 
        + "ddd " 
      + " </div> " 
      
      //生成   DIV 
//document.body.insertAdjacentHTML( "beforeEnd ",   str);     
document.write(str);
//通过DRAG使   DIV可以拖动,在静态DIV通过测试,可是对于这个动态生成的DIV,没有起作用 

} 

window.onload = function (){
    setConfig();
    Drag.init(document.getElementById( "message ")); 
}


/************************************************** 
下面是封装的拖动类 
  **************************************************/ 
var   Drag   =   { 

obj   :   null, 

init   :   function(o,   oRoot,   minX,   maxX,   minY,   maxY,   bSwapHorzRef,   bSwapVertRef,   fXMapper,   fYMapper) 
{ 
alert( "进入DRAG类,没起作用 "); 
o.onmousedown =   Drag.start; 

o.hmode =   bSwapHorzRef   ?   false   :   true   ; 
o.vmode =   bSwapVertRef   ?   false   :   true   ; 

o.root   =   oRoot   &&   oRoot   !=   null   ?   oRoot   :   o   ; 

if   (o.hmode     &&   isNaN(parseInt(o.root.style.left     )))   o.root.style.left       =   "0px "; 
if   (o.vmode     &&   isNaN(parseInt(o.root.style.top       )))   o.root.style.top         =   "0px "; 
if   (!o.hmode   &&   isNaN(parseInt(o.root.style.right   )))   o.root.style.right     =   "0px "; 
if   (!o.vmode   &&   isNaN(parseInt(o.root.style.bottom)))   o.root.style.bottom   =   "0px "; 

o.minX =   typeof   minX   !=   'undefined '   ?   minX   :   null; 
o.minY =   typeof   minY   !=   'undefined '   ?   minY   :   null; 
o.maxX =   typeof   maxX   !=   'undefined '   ?   maxX   :   null; 
o.maxY =   typeof   maxY   !=   'undefined '   ?   maxY   :   null; 

o.xMapper   =   fXMapper   ?   fXMapper   :   null; 
o.yMapper   =   fYMapper   ?   fYMapper   :   null; 

o.root.onDragStart =   new   Function(); 
o.root.onDragEnd =   new   Function(); 
o.root.onDrag =   new   Function(); 
}, 

start   :   function(e) 
{ 
var   o   =   Drag.obj   =   this; 
e   =   Drag.fixE(e); 
var   y   =   parseInt(o.vmode   ?   o.root.style.top     :   o.root.style.bottom); 
var   x   =   parseInt(o.hmode   ?   o.root.style.left   :   o.root.style.right   ); 
o.root.onDragStart(x,   y); 

o.lastMouseX =   e.clientX; 
o.lastMouseY =   e.clientY; 

if   (o.hmode)   { 
if   (o.minX   !=   null) o.minMouseX =   e.clientX   -   x   +   o.minX; 
if   (o.maxX   !=   null) o.maxMouseX =   o.minMouseX   +   o.maxX   -   o.minX; 
}   else   { 
if   (o.minX   !=   null)   o.maxMouseX   =   -o.minX   +   e.clientX   +   x; 
if   (o.maxX   !=   null)   o.minMouseX   =   -o.maxX   +   e.clientX   +   x; 
} 

if   (o.vmode)   { 
if   (o.minY   !=   null) o.minMouseY =   e.clientY   -   y   +   o.minY; 
if   (o.maxY   !=   null) o.maxMouseY =   o.minMouseY   +   o.maxY   -   o.minY; 
}   else   { 
if   (o.minY   !=   null)   o.maxMouseY   =   -o.minY   +   e.clientY   +   y; 
if   (o.maxY   !=   null)   o.minMouseY   =   -o.maxY   +   e.clientY   +   y; 
} 

document.onmousemove =   Drag.drag; 
document.onmouseup =   Drag.end; 

return   false; 
}, 

drag   :   function(e) 
{ 
e   =   Drag.fixE(e); 
var   o   =   Drag.obj; 

var   ey =   e.clientY; 
var   ex =   e.clientX; 
var