前言:

项目中用到了一个功能,搜索框里有默认的文字,当搜索框获得焦点时里面的默认文字消失,如果失去焦点时搜索框内容为空则让里面的内容回复默认!,.

实现:

很轻松的在网上找到了类似代码

    $("#search_text").focus(function (event) {
with (event.srcElement)
//如果当前值为默认值,则清空
if (value == defaultValue) value = "";
});
$("#search_text").blur(function res(event) {
//捕获触发事件的对象,并设置为以下语句的默认对象
with (event.srcElement)
//如果当前值为空,则重置为默认值
if (value == "") {
value = defaultValue;
}
});

该代码很牛逼,用到了js里面的with语法(虽然书上说因为性能原因不建议使用with),而且完全支持IE6。

但是问题来了,连IE都支持的这段代码竟然在火狐上面出现了兼容的问题。

查了资料原来是

event.srcElement 意思是当前事件的源,我们可以调用它的各种属性,就像 document.getElementById(id) 一样。

IE下,event对象有 srcElement 属性,没有target属性;firefox下,event对象有 target属性,但是没有 srcElement 属性。他们的作用是一样的。

版本二:

    $("#search_text").focus(function (event) {
with (event.target || event.srcElement)
//如果当前值为默认值,则清空
if (value == defaultValue) value = "";
});
$("#search_text").blur(function res(event) {
//捕获触发事件的对象,并设置为以下语句的默认对象
with (event.target || event.srcElement)
//如果当前值为空,则重置为默认值
if (value == "") {
value = defaultValue;
}
});

好了,可以让你的代码在项目中运行起来了

event.srcElement在火狐(FireFox)下的兼容问题。搜索框获得焦点时默认文字变化的更多相关文章

  1. window.frames[]在Firefox下无法兼容的解决方式

    html代码段: <iframe id="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckPr ...

  2. JavaScript在IE和Firefox的不兼容问题解决方法总结

    1.兼容Firefox的 outerHTML,Firefox中没有outerHtml的方法. if (window.HTMLElement) { HTMLElement.prototype.__def ...

  3. event.srcElement与event.target的区别

    window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为 ...

  4. window.event.srcElement与window.event.target 触发事件的元素 触发事件对象的获取,window.event与时间函数参数的event是同一个 事件对象

    判断事件触发的元素:     var tag = window.event.target || window.event.srcElement;    if (tag.tagName.toLowerC ...

  5. window.event.srcElement与window.event.target 触发事件的元素

    IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...

  6. java简单的实现搜索框的下拉显示相关搜索功能

    最近做了一个简单的搜索框下面下拉显示相关搜索的功能,有点模仿百度的下拉展示相关搜索 先上个展示图 : 点击进入演示地址,大家可以输入长点的搜索,点击搜索,再输入之前搜索词的前面部分,看是否能展示出来 ...

  7. event对象在IE和firefox下兼容写法

    由于项目需求要求只能允许用户输入数字和小数,用到了event.keycode后IE系列.chrome浏览器都无问题,在firefox下出现了event not defined的错误 原因:火狐下eve ...

  8. event.srcElement兼容处理

    在IE下,event对象有srcElement属性,但是没有target属性:Firefox下,even对象有target属性,但是没有srcElement属性.. 解决方法:使用obj(obj = ...

  9. FireFox火狐浏览器与IE兼容问题 - 透明滤镜 DIV滚动条

    问题一:最简单的鼠标移过手变型的css要改了 cursor:pointer;/*FireFox(火狐)不支持cursor:hand*/ dw8下面自动出来的也没有hand这个属性了,标准的是point ...

随机推荐

  1. MongoDB 权限

    1.使用mongod 启动后(加入了--auth后操作数据库则需要权限) mongod --dbpath=D:\mongdb\db --logpath=D:\mongodb\log.txt --por ...

  2. iOS - Swift NSCalendar 日历

    前言 public class NSCalendar : NSObject, NSCopying, NSSecureCoding NSCalendar 对世界上现存的常用的历法进行了封装,既提供了不同 ...

  3. HDU 5119

    被一个学长逼着做的题...谢谢他了~  题中dp[i][j] i即为第i个数,j为当前输入的数能xor到的数 同时一个数有两种选择,1.not xor  2.xor 最大的j不会超过11...11b( ...

  4. linux学习笔记2-命令总结1

    计划一个长期过程系统学习linux,这是本周学习总结,如果错误望指出纠正. 文件处理命令 命令格式与目录处理命令  ls 目录处理命令  cd  cp  mkdir  mv  pwd  rm  rmd ...

  5. java里有没有专门判断List里有重复的数据

    public static void main(String[] args)     {         List<String> list = new ArrayList<Stri ...

  6. 一些android系统参数的获取

    //获取网络类型 2G/3G/WIFI public String getNetworkType(){ String mNetWorkType = ""; Connectivity ...

  7. Hadoop 基本操作

    1.关闭安全模式 hadoop dfsadmin -safemode leave

  8. Java 默认/缺省 server 还是 client 模式

    不多说,复制官方文档,适用于 Java 5 6 7 Architecture OS Default client VM if server-class, server VM; otherwise, c ...

  9. Mybatis关联查询,查询出的记录数量与数据库直接查询不一致,如何解决?

    <select id="findUserInfoListForMap"    resultMap="BaseResultMap">  SELECT  ...

  10. iOS开发 tabBarController选中状态

    self.tabBarController.selectedIndex = 0;  // 默认是0: