在onmouseenter上,onload不起作用

时间:2014-05-01 19:47:28

标签: javascript

我做了一个简单的JS函数,试图用onload =" updateClock()"来调用它。但没有任何成功。但如果我改为onmouseenter =" updateClock()"它完美无缺,然后我用鼠标盘旋。

为什么它不起作用?

HTML:

<script src="clock.js" type="text/javascript"></script>
<section onload="updateClock();">
    <span id="clock">00:00:00</span>
</section>

JS:

function updateClock(){

    var currentTime = new Date ();

    var hours = currentTime.getHours ();
    var minuts = currentTime.getMinutes ();
    var seconds = currentTime.getSeconds ();

    //Pad with zeros
    hours = (hours < 10 ? "0" : "") + hours;
    minuts = (minuts < 10 ? "0" : "") + minuts;
    seconds = (seconds <10 ? "0" : "") + seconds;

    var time = hours + ":" + minuts + ":" + seconds;

    document.getElementById("clock").innerHTML = time;
}

1 个答案:

答案 0 :(得分:2)

只有像iframeimg这样的元素,一般来说,可以从外部资源加载内容的元素都有onload事件。 (以及一些DOM对象,如window ofcourse。)

快速解决方法是在script之后移动section标记并使用IIFE

<section>
    <span id="clock">00:00:00</span>
</section>
<script src="clock.js" type="text/javascript"></script>

在clock.js中:

(function updateClock(){
         :
}());