6 javascript jquery internet-explorer onblur
我有一个下拉菜单,单击一个div,显示列表.
在焦点上我应该隐藏列表(即当用户点击或关注某些其他元素而不是鼠标移出时).因此,我明显的选择是onblur.
现在JavaScript似乎在Firefox中工作,但在IE中却没有,因为我的div有一个指定高度和宽度的子div.这在测试文件中是可重现的.我正在使用jQuery.
这是Internet Explorer中的已知问题吗?什么是工作?
<html>
<head>
<title>Exploring IE</title>
<style type="text/css">
/** Exploring IE**/
.selected_option div {height:18px;}
</style>
<script type="text/javascript" src="jquery-1.3.2.min9919.js"></script>
<script type="text/javascript">
$().ready(function(){
$('.selected_option').blur(function(){
alert('blurred');
});
});
</script>
</head>
<body>
<div class="selected_option" tabindex="0">
<div>anywhere in the page</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
IE专有focusout活动对我有用:
$('.selected_option').bind('focusout', function(){
alert('focusout');
});
Run Code Online (Sandbox Code Playgroud)
同样,这是专有的(参见quirksmode),但如果它可以解决您的问题,则可能是合适的.您始终可以绑定到blur和focusout事件.
尝试:
$('.selected_option').bind('blur', function(){
alert('blurred');
});
Run Code Online (Sandbox Code Playgroud)
您还可以使用另一个技巧 - 处理所有鼠标单击或/和焦点事件,如果选择了另一个控件,那么您自己的控件将变得模糊(当然,如果之前选择了它)。