捕捉IE下鼠标右键paste事件

Author : lovecicy

背景:IE8,jQuery 这次碰到的问题是,一个有边框的div套着一个起始宽度为30px的无边框文本输入框,随着用户的输入,输入框的长度也会随之改变。解决的办法是给输入框绑定事件,当用户输入事件触发时调用函数改变输入框的宽度。函数中判断输入框中内容是否和之前一样,如果一样则返回;不一样则改变宽度。 需要处理的情形:键盘输入,失去焦点,键盘粘贴,鼠标右键粘贴。 绑定的事件有:keyup,keydown,blur, update,change,input和paste。 这些事件能够基本保证在IE8,FF和Chrome下面对文本框宽度的控制。但是在IE8下,鼠标右键粘贴时会触发paste事件,但是在触发事件时输入框中内容还没有改变,所以函数会直接返回,不会改变输入框的宽度,之后输入框中的内容会被改变。但是在键盘粘贴时不会发生这种情况。 为了解决这个问题,我将绑定事件的回调函数改为一个function,在function中使用setTimeout调用改变输入框宽度的函数,延时为10ms,结果问题就解决了。 大致代码如下: $(‘#inputBox’).bind(‘paste’, functi[Read More]

standard