重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
输入框失去焦点后,你又给它赋予焦点,并且弹出对话框,你再点击取消,输入框又失去焦点,然后它又被赋予焦点.....这就是个死循环,所以这个alert会循环出现。
创新互联建站专注于企业全网整合营销推广、网站重做改版、海林网站定制设计、自适应品牌网站建设、成都h5网站建设、商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海林等各大城市提供网站开发制作服务。
DIV获取焦点有两种方法:
DIV直接使用focus()和blur()两个方法是无效的,需添加tabindex="0contenteditable="true"属性,设置div为可编辑状态,则可点击获取焦点,同时div的内容也是可以编辑的,
设置div的tabindex,此时div的内容是不可编辑的。
PS:设置tabindex属性,按键盘Tab键可让其获取焦点,其中tabindex的值越小在tab键切换的时候就会首先聚焦
javascript通过 onFocus onBlur来判断焦点和失去焦点
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用以处理焦点移出和获取时事件处理!
在可编辑的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");
});
你要插入图片的话,要不要记录光标所在的位置?