Jquery 滚轮事件

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注