可能重复:
聚焦和模糊jQuery事件而不是冒泡
var default_input_value = null;
jQuery('body').on('focus focusout', 'input[type="text"]', function(event){
if(event.type === 'focus'){
default_input_value = jQuery(this).val();
jQuery(this).val('');
}else if(event.type === 'focusout')
if(jQuery(this).val().length === 0)
jQuery(this).val(default_input_value);
}
);
Run Code Online (Sandbox Code Playgroud)
此代码根本不响应该事件.PS重要的是会有input[type="text"],因为在某些情况下jQuery focus也会发生火灾checkbox....
pkt*_*yue 19
在.on()jquery文档下,有一个描述:
这些focus和blur事件由W3C指定为不冒泡,但jQuery定义了跨浏览器focusin和focusout冒泡的事件.当focus和blur用于附加委托事件处理程序时,jQuery映射名称focusin并focusout分别将它们作为和传递.为保持一致性和清晰度,请使用冒泡事件类型名称.
希望这会有用.
你可以试试这段代码:
var default_input_value = null;
jQuery('body').on('focusin focusout', 'input[type="text"]', function(event){
if(event.type === 'focusin'){
default_input_value = jQuery(this).val();
jQuery(this).val('');
}else if(event.type === 'focusout'){
if(jQuery(this).val().length === 0)
jQuery(this).val(default_input_value);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6925 次 |
| 最近记录: |