ie 中的滚动条触发 focusout 事件
Scrollbar firing focusout event in ie
所以我有一个在 focusout 时关闭的下拉菜单。
我的问题是,在 ie 中,当您单击下拉 div 的滚动条时,focusout 事件会触发并且菜单会关闭...
我试过在点击时创建一个标志但是 focusout 事件在点击事件之前触发所以标志不好......
我能做什么?
$("input#" + selname + "i").focusout(function(){
$("ul#" + selname + "ul").slideUp(500);
});
解决方案:
$(document).mouseup(function (e) {
if (!$("div." + selname + "wrapper").is(e.target) // if the target of the click isn't the container...
&& ($("div." + selname + "wrapper").has(e.target).length === 0) // ... nor a descendant of the container
&& (e.target != $("ul#" + selname + "ul").get(0))) // nor the scrollbar
{
$("ul#" + selname + "ul").slideUp(500);
$("input[name=" + selname + "]").val(propvalarray[simplifyString($("input#" + selname + "i").val())].toUpperCase());
checkProp();
}
});
归功于@kurkula
所以我有一个在 focusout 时关闭的下拉菜单。 我的问题是,在 ie 中,当您单击下拉 div 的滚动条时,focusout 事件会触发并且菜单会关闭... 我试过在点击时创建一个标志但是 focusout 事件在点击事件之前触发所以标志不好...... 我能做什么?
$("input#" + selname + "i").focusout(function(){
$("ul#" + selname + "ul").slideUp(500);
});
解决方案:
$(document).mouseup(function (e) {
if (!$("div." + selname + "wrapper").is(e.target) // if the target of the click isn't the container...
&& ($("div." + selname + "wrapper").has(e.target).length === 0) // ... nor a descendant of the container
&& (e.target != $("ul#" + selname + "ul").get(0))) // nor the scrollbar
{
$("ul#" + selname + "ul").slideUp(500);
$("input[name=" + selname + "]").val(propvalarray[simplifyString($("input#" + selname + "i").val())].toUpperCase());
checkProp();
}
});
归功于@kurkula