繁体   English   中英

IE 中的 onBlur 事件

[英]onBlur event in IE

我有这个 HTML:

<textarea class="question" onBlur="onBlurFun(event); return true;" 
name="aaa" id="bbb"></textarea>

JavaScript 中的这个函数

    onBlurFun = function(event) {
 var tgt = $(event.target);
 alert(tgt.attr('id'));
    }

在 IE 中, tgt设置不正确。 我应该怎么做才能访问调用节点?

event.srcElement相当于 Internet Explorer 的event.target jQuery 在使用.bind()应用的事件处理程序中为您规范了这一点,因此您可以在 Internet Explorer 中使用event.target ,但通过 HTML 属性或 DOM 属性应用的事件处理程序将不具有该属性。 在您的情况下,您可以将代码更改为

// event.target or event.srcElement
var tgt = $(event.target || event.srcElement);

或遵循June R 的建议并传入对元素的引用。

作为旁注,没有必要return true; 对于大多数事件,尤其是onbluronfocus,因为无论如何您都无法取消它们的默认操作。

要检查目标不要传递事件 intead 这个传递对象它自己喜欢

看看这个代码

<textarea class="question" onBlur="onBlurFun(this); return true;" 
name="aaa" id="bbb"></textarea>

 function  onBlurFun(obj) 
{
   alert(obj.id); 
}

IE 有自己的全局事件对象。

这应该工作

onBlurFun = function(event) {

   if (!event)
   {
     event = window.event;
     event.target = event.srcElement;
   }

   var tgt = $(event.target);
   alert(tgt.attr('id'));

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM