重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
javascript通过 onFocus onBlur来判断焦点和失去焦点
创新互联企业建站,10多年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站制作、网站设计、外贸网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
input type="text" id="p" onBlur="alert('lose focus!')"
onFocus="alert('get focus')" /
jquery $("#p").blur(); $("#p").blur(fn)
或$("#p").focus(); 或$("#p").focus(fn)来处理焦点事件
前者:$("#p").blur();$("#p").focus(); 用来强制获取或失去焦点
后者:$("#p").blur(fn),$("#p").focus(fn)则类似js的onBlur和onFocus用以处理焦点移出和获取时事件处理!
输入框失去焦点后,你又给它赋予焦点,并且弹出对话框,你再点击取消,输入框又失去焦点,然后它又被赋予焦点.....这就是个死循环,所以这个alert会循环出现。
DIV获取焦点(两种方法):
DIV直接使用focus()和blur()两个方法是无效的,需添加tabindex="0"或者contenteditable="true"属性
①:设置div为可编辑状态,则可点击获取焦点,同时div的内容也是可以编辑的;如:
div
contenteditable="true"11111111111111/div
②:设置div的tabindex,此时div的内容是不可编辑的;如:
div
tabindex="0"11111111111111/div
PS:设置tabindex属性,按键盘Tab键可让其获取焦点,其中tabindex的值越小在tab键切换的时候就会首先聚焦
在可编辑的DIV里,加上blur事件,就是当失去焦点时,获取失去焦点的DIV的ID,然后保存到全局变量里,这样你在做添加图片时,可以直接读取这个全局变量来获取最后是哪个DIV失去了焦点。
用jquery的话,一句代码就能为所有的DIV添加上失去焦点事件:
$("div").on("blur",function(){
var id=$(this).prop("id");
});;
上面是为所有的DIV绑定了事件,但你可以在实际中,根据自己的需要来“缩小范围”,比如你要监听的只是其中包含“edit”样式的DIV,改成:
$("div.edit").on("blur",function(){
var id=$(this).prop("id");
});
你要插入图片的话,要不要记录光标所在的位置?
DIV获取焦点有两种方法:
DIV直接使用focus()和blur()两个方法是无效的,需添加tabindex="0contenteditable="true"属性,设置div为可编辑状态,则可点击获取焦点,同时div的内容也是可以编辑的,
设置div的tabindex,此时div的内容是不可编辑的。
PS:设置tabindex属性,按键盘Tab键可让其获取焦点,其中tabindex的值越小在tab键切换的时候就会首先聚焦