在项目中有采用到一个下拉列表插件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