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

本文探讨了不同浏览器处理Select元素时出现的渲染问题,并提出了两种解决方案:一是利用mousedown事件提前加载选项;二是通过模拟mousedown事件解决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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值