javascript onload不工作但onclick工作css画线

时间:2012-12-27 23:12:35

标签: javascript jquery css

  

可能重复:
  How to add onload event to a div?

我正在尝试使用css和javascript绘制一条线,如下例所示:example。我可以让它与原始的东西工作得很好,但在尝试修改它然后让它从html onload工作onload等于它不工作,但它正在使用onclick事件。

这是我的css:

.line 
{
    position: absolute;
    height: 0px;
    border-width: 2px 0px 0px 0px;
    border-style: solid;
    border-color: #99aadd;
 }

和javascript:

function createLine2(myline,x1,y1,x2,y2)
{
    if (x2 < x1)
    {
        var temp = x1;
        x1 = x2;
        x2 = temp;
        temp = y1;
        y1 = y2;
        y2 = temp;
    }
    var length = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    myline.style.width = length+"px";
    var angle = Math.atan((y2-y1)/(x2-x1));
    myline.style.top = y1 + 0.5*length*Math.sin(angle) + "px";
    myline.style.left = x1 - 0.5*length*(1 - Math.cos(angle)) + "px";
    myline.style.MozTransform = myline.style.WebkitTransform = myline.style.OTransform="rotate("+angle+"rad)";
}

最后是不起作用的html:

<div class="line" onload="createLine2(this,100,100,0,0)">test</div><br>

和可行的html:

<div class="line" onclick="createLine2(this,100,100,0,0)">test</div><br>

如何让它与onload一起使用以及我搞砸了什么?

2 个答案:

答案 0 :(得分:1)

div标签上不允许使用onload事件。只允许使用以下标记:

<body>, <frame>, <frameset>, <iframe>, <img>, <input type="image">, <link>, <script>, <style>

http://www.w3schools.com/jsref/event_onload.asp

答案 1 :(得分:0)

如果您使用的是jquery,我建议使用jquery ready函数。

  

.ready(handler)handler在DOM准备好后执行的函数。

http://api.jquery.com/ready/

如果您使用的是纯JavaScript,请使用window.onload

  

window.onload = funcRef;

https://developer.mozilla.org/en-US/docs/DOM/window.onload