当.change()
选择选项时,我可以模糊<SELECT>
但是,当<SELECT>
打开并单击另一个元素或<BODY>
时,我如何模糊<SELECT>
?
通常我们必须点击<BODY>
两次才能模糊<SELECT>
元素,对吗?
我怎么能只点击一次?
$("select").focus(function () {
$("code").html("focus");
}).blur(function () {
$("code").html("blur");
});
$("select").change(function(){
$("select").blur();
});
为什么我不能做
$("*:not(select)").click(function(){
$("select").blur();
});
我只需要检测<SELECT>
打开还是关闭
演示:http://jsbin.com/owitot/1/edit(尝试打开选择框并单击正文)
问题是,第一次点击只关闭select元素,而不会使其失焦。因此,要解决您的问题,您应该捕捉关闭事件,然后执行:
$("select").blur(); // This will even call your event listener!
但是怎样才能赶上这场势均力敌的比赛呢?不幸的是,没有这样的(官方)活动。但也许这个问题有帮助:当HTML选择元素关闭时,是否有DOM事件会触发?