2

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

皆さんからのヒントをいただければ幸いです。

前もって感謝します!

4

2 に答える 2

2

onmouseover次のように設定する必要があります。

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

現在のコードでは、イベント ハンドラ ( に設定) は-container.onmouseoverの結果に設定されています。これは、現在何も返さないためです。これにより、関数がすぐに実行されるため、アラートがすぐに表示されます。(有効にするためには、別の関数を返す必要があります。)dataRetrieving.getWidth(...)getWidth

于 2011-12-23T03:33:46.603 に答える
1
container.onmouseover = dataRetrieving.getWidth("container_1");

そこでその関数を呼び出しているため、ページの読み込み時に警告が表示されます。

于 2011-12-23T03:34:54.550 に答える