博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由一个小Bug推及ie及ff的dom元素差异
阅读量:5018 次
发布时间:2019-06-12

本文共 1076 字,大约阅读时间需要 3 分钟。

如何获取DOM中当前获取焦点的元素

  由于底层库的数据传递的做法,是当Input、TextArea这样的输入库失去焦点时候更新数据到Data对象。

于是产生了这样一个bug。当用户输入一些内容,然后点击DataInput组件的时间选择框时,前面的Input并没有失去焦点。

 

所以为了解决这个bug,理所当然想到把焦点放到DataInput组件上,

$("#DateInput").focus();

可是却没有生效。(生效与否看字体是否变红)

于是改成将焦点取消。$(document.activeElement).blur(),成功。

可是ff下却没有document.activeElement这个对象。

 最终使用: if($.browser.msie)   $(document.activeElement).blur();  else    $( e ? e.explicitOriginalTarget : null).blur(); 获取document上得到焦点的元素。

 

FF及IE的DOM属性差异问题是一个前端工程师必须解决的事情。

我只是列举一些工作中遇到的,存在这里。

 

事件对象

e = e || window.event;

阻止事件冒泡

IE:e.returnValue = false;FF:if(e.preventDefault)    e.preventDefault();

获取焦点的的elemet

var elem = e.srcElement || e.currentTarget

绑定事件

function bind(el, type, fn, useCapture){    if (window.addEventListener) {        el.addEventListener(type, function(){            fn.apply(el, arguments);//始终将this指向DOM        }, useCapture);    }    else if (window.attachEvent) {        el.attachEvent('on' + type, function(){            fn.apply(el, arguments);//始终将this指向DOM        });    }}

 

转载于:https://www.cnblogs.com/bugluo/archive/2012/12/21/2827556.html

你可能感兴趣的文章
DOCKER 从入门到放弃(五)
查看>>
Python 多线程学习
查看>>
获取NVIDIA显卡的温度
查看>>
Dijkstra算法
查看>>
Deep Learning 9: Performance
查看>>
面试题61 把二叉树打印成多行
查看>>
第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除...
查看>>
Codeforces Round #327 (Div. 2)
查看>>
ODAC(V9.5.15) 学习笔记(三)TOraSession(2)
查看>>
SQL中的replace函数
查看>>
java中的类型安全问题-Type safety: Unchecked cast from Object to ...
查看>>
如何解决最后一个尾注引用显示与致谢混为一谈的问题-下
查看>>
css文本样式text、字体样式font
查看>>
python判断图片是否损坏
查看>>
MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
查看>>
KNN与SVM对比&SVM与逻辑回归的对比
查看>>
团队个人冲刺第三天
查看>>
2017-10-17 NOIP模拟赛2
查看>>
How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
查看>>
The Ctrl & CapsLock `problem'
查看>>