Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE 10-带滚动条的div触发模糊事件,导致其隐藏(自定义代码)_Javascript_Html_Internet Explorer_W2ui - Fatal编程技术网

Javascript IE 10-带滚动条的div触发模糊事件,导致其隐藏(自定义代码)

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

我们正在使用W2UI(Javascript UI)控件。它有一个“多选”输入控件,与建议数据关联的div容器。每当用户单击输入控件时,就会弹出一个建议div,用户可以从列表中选择多个项目。请找到下面的截图

当建议列表有超过10条记录时,我们设置了div的overfloaw:auto。(请参阅下面的屏幕截图)

此时,在Chrome和Mozilla中单击滚动条可以正常工作,但在IE中,它会关闭/隐藏div

我们对此进行了初步RCA,如下所示。 当一个滚动条与一个div关联时,点击滚动条会触发该div的模糊事件。 在W2UI库中,blur事件用于隐藏建议div,使其关闭。我们还发现,在chrome和firefox中,点击滚动条不会引发模糊事件

现在我们想在IE中,当用户点击“滚动条”时,抑制模糊事件。 我们无法识别滚动条单击


请分享您对有条件地抑制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;
  }
})