问题: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()方法进行获得焦点了