select展开时 重新加载 option,ie 折叠问题 以及 chrome 没有变化问题

这个bug是因为浏览器的渲染问题引起的

一:重新加载option的渲染处理

  1:火狐能重新渲染,并且select不折叠

  2:ie重新渲染,但是select收缩折叠

  3:chrome直接不重新进行渲染,当然就不会折叠了

     ie,chrome的表现就不如预期,引起问题

二:解决方案:

方案1:可以在select展开之前先加载,这样子就可以避免重新渲染的问题,使用mousedown的事件,如果一定要左键,可在事件里判断具体点击了哪个键(event.which:1 = 鼠标左键 left; 2 = 鼠标中键; 3 = 鼠标右键)。

方案2:如果坚持用click事件,ie下暂时没想到方法,但是chrome下可以使用先失去焦点,然后模拟mousedown事件

代码如下:

  $select.blur();//失去焦点
  var e = document.createEvent("MouseEvents");
 e.initMouseEvent("mousedown", true, true, window);
$select[0].dispatchEvent(e);//分派事件

原文地址:https://www.cnblogs.com/lingepeiyong/p/4127835.html