event.srcElement在火狐(FireFox)下的兼容问题。搜索框获得焦点时默认文字变化
前言:
项目中用到了一个功能,搜索框里有默认的文字,当搜索框获得焦点时里面的默认文字消失,如果失去焦点时搜索框内容为空则让里面的内容回复默认!,.
实现:
很轻松的在网上找到了类似代码
$("#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)下的兼容问题。搜索框获得焦点时默认文字变化的更多相关文章
- window.frames[]在Firefox下无法兼容的解决方式
html代码段: <iframe id="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckPr ...
- JavaScript在IE和Firefox的不兼容问题解决方法总结
1.兼容Firefox的 outerHTML,Firefox中没有outerHtml的方法. if (window.HTMLElement) { HTMLElement.prototype.__def ...
- event.srcElement与event.target的区别
window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为 ...
- window.event.srcElement与window.event.target 触发事件的元素 触发事件对象的获取,window.event与时间函数参数的event是同一个 事件对象
判断事件触发的元素: var tag = window.event.target || window.event.srcElement; if (tag.tagName.toLowerC ...
- window.event.srcElement与window.event.target 触发事件的元素
IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...
- java简单的实现搜索框的下拉显示相关搜索功能
最近做了一个简单的搜索框下面下拉显示相关搜索的功能,有点模仿百度的下拉展示相关搜索 先上个展示图 : 点击进入演示地址,大家可以输入长点的搜索,点击搜索,再输入之前搜索词的前面部分,看是否能展示出来 ...
- event对象在IE和firefox下兼容写法
由于项目需求要求只能允许用户输入数字和小数,用到了event.keycode后IE系列.chrome浏览器都无问题,在firefox下出现了event not defined的错误 原因:火狐下eve ...
- event.srcElement兼容处理
在IE下,event对象有srcElement属性,但是没有target属性:Firefox下,even对象有target属性,但是没有srcElement属性.. 解决方法:使用obj(obj = ...
- FireFox火狐浏览器与IE兼容问题 - 透明滤镜 DIV滚动条
问题一:最简单的鼠标移过手变型的css要改了 cursor:pointer;/*FireFox(火狐)不支持cursor:hand*/ dw8下面自动出来的也没有hand这个属性了,标准的是point ...
随机推荐
- iOS - UISearchController
前言 NS_CLASS_DEPRECATED_IOS(3_0, 8_0, "UISearchDisplayController has been replaced with UISearch ...
- 我想有个梦想(I want have a dream)
成东青说过:梦想是什么,梦想就是你坚持就觉得是幸福东西. 多好啊,有梦想,想想就觉得幸福的.也许你会觉得有点做作,但我真觉得是这样.没有梦想就像一个没有了灵魂的躯壳,整天浑浑噩噩,整天麻木的上班下班, ...
- gdufs 1237 最优分解问题
题目链接:http://cstfs.gdufs.edu.cn:8080/JudgeOnline/problem.jsp?id=1237 (好像是内网的0.0) 简单来说,这道题目就是把一个数分解为若干 ...
- C++——将成员函数作为参数
在C++中,成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的,首先 我们来回顾一下普通函数指针的传递方法: //------------------------------------- ...
- 聊天界面之气泡文本cell(一)
在实现qq聊天界面的过程中,使用UITableViewCell碰到了不少问题,这里还是记录一下以免遗忘. 气泡聊天cell的实现,网上最多的方法还是: 1.手动计算设置frame的值,文本的size使 ...
- 修改Mac]Bringing interface etch0:Device
OS版本:Red Hat Enterprise Linux AS4/5 网上有很多关于linux下修改MAC地址的方法,大多依葫芦画瓢,似乎都没验证过,达不到修改的目的. 经过我的详细测试,最终成功解 ...
- UIButton 一个控件 实现 左图标右文本的效果
UIButton 一个控件 实现 左图标右文本的效果 如图,我们要实现一个 左边图标右边文本的效果,一般 可以考虑是 UIImageView + UILabel 不过,其实一个UIButton就可以搞 ...
- dede顶级栏目直接显示内容
点击网站栏目管理,增加顶级栏目 在弹出的增加窗口中,填上栏目名称,其它的如果没有特殊的要求可直接默认 点击常规选项旁边的高级选项,并且在列表模板中,将其改一个文件名,这个文件名就是后面需要使用到的文件 ...
- 【bzoj3771】【xsy1728】Triple
[bzoj3771][xsy1728] 题意 求\(\sum_{i}[a_i=S]+\sum_{i<j}[a_i+a_j=S]+\sum_{i<j<k}[a_i+a_j+a_k=S] ...
- 【bzoj1019】汉诺塔
[bzoj1019]汉诺塔 题意 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1019 分析 思路1:待定系数+解方程 设\(f[n]\)为 ...