javascript事件处理程序无法正常工作

时间:2011-12-23 03:29:09

标签: javascript events handlers

我对javascript事件处理程序有一些问题,我真的想知道我做错了什么。 这是事情,我想提醒悬停的div的宽度,但是一旦加载页面,就会出现警报。

这是HTML:

<div id="mainContainer">  
    <div id="container_1" style="width:200px"></div>  
    <div id="container_2" style="width:100px"></div>  
    <div id="container_3" style="width:300px"></div>  
    <div id="container_4" style="width:150px"></div>  
</div>

这是js:

dataRetrieving = {
    getWidth:function(id){
        var box = document.getElementById(id);
        var tempResult = box.style.width;
        return tempResult;
    }
}
var container = document.getElementById("container_1");
container.onmouseover = function(){
    alert(dataRetrieving.getWidth("container_1"));
};

已经回答了,谢谢:D

我很感激你们给我的任何提示。

提前致谢!

2 个答案:

答案 0 :(得分:2)

您需要将onmouseover设置为以下内容:

container.onmouseover = function(){
  dataRetrieving.getWidth("container_1");
};

在当前代码中,事件处理程序(设置为container.onmouseover)设置为dataRetrieving.getWidth(...)的结果 - 这没什么,因为getWidth当前没有返回任何内容。这也会导致警报立即出现,因为该功能正在立即执行。 (为了有效,它必须返回另一个函数。)

答案 1 :(得分:1)

container.onmouseover = dataRetrieving.getWidth("container_1");

你在那里调用那个函数就是为什么它会在页面加载时发出警告。