在项目中有采用到一个下拉列表插件jquery.ui.ufd发现在jquery 1.7以上版本中文取值过滤有问题,总是显示前几项而非过滤项。查了半天才发现是jquery的滚轮事件originalEven的问题。StatckOverflow上的解释说在1.7以上的版本jquery event对象的detail属性不再可用而应使用event.originalEvent.detail来代替。
this.listScroll.bind("DOMMouseScroll mousewheel", function(e) { self.stopEvent(e); e = e ? e : window.event; e=e.originalEvent;//在>1.7版本的Jquery中得这样才能获取detail/wheelDelta var normal = e.detail ? e.detail * -1 : e.wheelDelta / 40; var curST = self.listScroll.scrollTop(); var newScroll = curST + ((normal > 0) ? -1 * self.itemHeight : 1 * self.itemHeight); self.listScroll.scrollTop(newScroll); });
参考链接:
event.wheelDelta returns undefined
Binding mousewheel returns undefined