工作中常用到一些零碎但却非常有用的知识,平时没有时间系统的学习,只有在工作中一点点积累。jQuery有的只是在关键时刻非常有用,但是不经常用,很容易忘记,所以平时用到哪些知识,抽空记录下来,方便以后使用。
一、输入框获得焦点后,清空内容,并且focus事件只执行一次。
<input type="text" value="请输入关键字" id="search" />
js代码:
$(function(){
$("#search").focus(function cls() {
with(event.srcElement)//捕获当前事件作用的对象
if (value == defaultValue)//如果value是默认值
value ="";//清空
$("#search").unbind("focus");//执行一次之后,将focus事件移除
});
})
注释:上面的方法中,event.srcElement只能在IE中使用,在火狐中应该用event.target。见下面2的例子。
二、获得焦点清除内容,失去焦点显示默认内容。
<input type="text" value="请输入关键字" id="search" />
js代码:
$(function(){
$("#search").focus(function cls(e) {
//var theEvent = window.event || arguments.callee.caller.arguments[0];
var theEvent = window.event || e;//获得event对象,IE和火狐取得event不一样,火狐的event要作为参数带过去
var srcElement = theEvent.srcElement;//IE
if (!srcElement){
srcElement = theEvent.target;//火狐
}
if (srcElement.value == srcElement.defaultValue)//对象指等于默认值
srcElement.value = ""//js方法清空
});
$("#search").blur(function res(e) {
var theEvent = window.event || e;
var srcElement = theEvent.srcElement;
if (!srcElement){
srcElement = theEvent.target;
}
with (srcElement)//这里与上面不同,用了with(),后面可以直接用value,defaultValue
if (value == "") value = defaultValue
});
})
注释:要注意火狐和IE获得event的方式不同。同时注意event.srcElement和event.target不同。