div失去焦点事件防止点击子元素input时触发

本文共有473个字,关键词:

问题:html页面样式<div>设置:<input type="text"/></div>,希望div失去焦点时进行隐藏,但鼠标点击input时不隐藏
解决:这种逻辑是错误的,因为焦点只有一个,要么div,要么input,不可以同时都有焦点,但可以通过其它方法实现这样的效果
方法:
方法一:使用mouseleave事件替代blur事件,但这样和blur效果有差
$('div').mouseleave(function(){
$('div').hide();
});
方法二:使用document的click事件替代blur事件,但要记得防止div冒泡事件(推荐)
$(document).click(function(){
$('div').hide();
});
$('div').click(function(e){
e.stopPropagation();
});

注:div要想获得焦点,必须增加属性<div tabindex="1"></div>,这样就可以使用js的focus()方法进行获得焦点了

版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论