这个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);//分派事件