Javascript IE 10-带滚动条的div触发模糊事件,导致其隐藏(自定义代码)
我们正在使用W2UI(Javascript UI)控件。它有一个“多选”输入控件,与建议数据关联的div容器。每当用户单击输入控件时,就会弹出一个建议div,用户可以从列表中选择多个项目。请找到下面的截图 当建议列表有超过10条记录时,我们设置了div的overfloaw:auto。(请参阅下面的屏幕截图) 此时,在Chrome和Mozilla中单击滚动条可以正常工作,但在IE中,它会关闭/隐藏div 我们对此进行了初步RCA,如下所示。 当一个滚动条与一个div关联时,点击滚动条会触发该div的模糊事件。 在W2UI库中,blur事件用于隐藏建议div,使其关闭。我们还发现,在chrome和firefox中,点击滚动条不会引发模糊事件 现在我们想在IE中,当用户点击“滚动条”时,抑制模糊事件。 我们无法识别滚动条单击Javascript IE 10-带滚动条的div触发模糊事件,导致其隐藏(自定义代码),javascript,html,internet-explorer,w2ui,Javascript,Html,Internet Explorer,W2ui,我们正在使用W2UI(Javascript UI)控件。它有一个“多选”输入控件,与建议数据关联的div容器。每当用户单击输入控件时,就会弹出一个建议div,用户可以从列表中选择多个项目。请找到下面的截图 当建议列表有超过10条记录时,我们设置了div的overfloaw:auto。(请参阅下面的屏幕截图) 此时,在Chrome和Mozilla中单击滚动条可以正常工作,但在IE中,它会关闭/隐藏div 我们对此进行了初步RCA,如下所示。 当一个滚动条与一个div关联时,点击滚动条会触发该d
请分享您对有条件地抑制blur()事件的想法/解决方法。我也面临同样的问题,我们在w2ui lbrary中做了一些更改 当全局变量flagClick第一次为false时,我们设置了它添加以下事件
var div = $('#w2ui-global-items');
div.on('mouseover', function (event)
{
flagClick = false;
$('.w2ui-list').find('input').focus();
});
div.on('mouseout', function (event)
{
flagClick = true;
});
并更改了div的模糊事件逻辑
如下--
几乎这个逻辑解决了我们的问题,只有一个例外。
当我们点击搜索文本框时,列表将被填充,若之后我们点击列表scroolbar,然后点击外部列表div,列表未被隐藏(div模糊事件未被触发)
试试这个解决方案,它会帮助你。
如果您得到了我们问题的解决方案,请发布在上面。几天前刚刚发布了w2ui的更新版本,其中包括multiselect在内的控件已经过重构。对于我来说,1.4版似乎很好。我只想指出,IE的行为在这里是正确的,因为滚动条是网页的一部分。其他浏览器在外部处理滚动条,产生可能有用但技术上不正确的行为。
.on('blur', function (event)
{
if (flagClick)
{
$(div).css('outline', 'none');
obj.hide();
if (event.stopPropagation) event.stopPropagation();
else event.cancelBubble = true;
}
})