Javascript事件调用程序未传递到参数
我正在用Javascript编写以下Javascript事件调用程序未传递到参数,javascript,events,event-handling,dom-events,Javascript,Events,Event Handling,Dom Events,我正在用Javascript编写以下onmouseover函数 function fnNavMouseOver(evt) { alert(evt.target); var eSrc evt = (evt) ? evt : (window.event) ? window.event : "" eSrc = (evt.target) ? evt.target : evt.srcElement alert(eSrc); } 我的印象是,在F
onmouseover
函数
function fnNavMouseOver(evt) {
alert(evt.target);
var eSrc
evt = (evt) ? evt : (window.event) ? window.event : ""
eSrc = (evt.target) ? evt.target : evt.srcElement
alert(eSrc);
}
我的印象是,在Firefox中,事件应该传递到函数中。然而,evt
似乎是空的。有什么可能导致这种情况吗
编辑:
调用此方法的代码如下所示:
ButtonHTML += "<img onmouseover='fnNavMouseOver()' id='" + ButtonId + "Norm' src='" + ImgPath + "_n.jpg' style='border-style:none;z-index=102;position:absolute;left:0px;top:0px'>";
ButtonHTML+=”;
然后将该字符串附加到页面上的div中。我意识到这并不理想,但我正在使用一个旧的框架,并尝试在其中添加一些新功能。如果将元素的mouseover事件处理程序设置在HTML元素之外,我认为您会将事件传递给您的函数 在您的使用中,您基本上是这样做的:
element.onmouseover=function(){yourfunction()}代码>
与此相反:
element.onmouseover=yourfunction
这就是你想要做的。由于您调用的函数没有参数,因此它没有接收任何参数,导致传入空值。我同意关于事件处理程序的低调赋值的答案,但值得一提的是,您可以通过将事件对象作为参数传递来继续使用HTML onmouseover属性
onmouseover="fnNavMouseOver(event);"
读取事件属性的最佳方法:他的方法适用于所有浏览器。