最近在学jquery,我发现jquery好像并没有对滚轮事件进行封装,如果想使用的话需要自己写兼容或者使用mousewheel插件,我觉得这并不方便,而且这个事件也会经常使用,为什么jquery不封装进去呢?
最近在学jquery,我发现jquery好像并没有对滚轮事件进行封装,如果想使用的话需要自己写兼容或者使用mousewheel插件,我觉得这并不方便,而且这个事件也会经常使用,为什么jquery不封装进去呢?
jQuery的scroll只针对有滚动条的,自定义的滚动条得自己写。用jQuery绑定DOMMouseScroll或mousewheel,发现wheelDelta和Detail两个重要属性不见了,然后还得自己写绑定函数
var EventInit = {
//绑定事件
addEvent: function (obj, type, fn) {
var handler = fn;
if (obj.addEventListener) { //ff
obj.addEventListener(type, handler, false);
}
else if (obj.attachEvent) { //ie
handler = function (e) {
fn.call(obj, e);//IE中有时 this变成了window。所有需要改变作用域链
};
obj.attachEvent('on' + type, handler);
}
},
//解除绑定
delEvent: function (obj, type, fn) {
var handler = fn;
if (obj.removeEventListener) {
obj.removeEventListener(type, fn, false);
}
else {
if (obj.detachEvent) {
handler = function (e) {
fn.call(obj, e);
}
console.log("detachEvent ??");
obj.detachEvent('on' + type, handler);
}
}
}};
2 回答2.2k 阅读
1k 阅读
如果你问的是
为什么jquery不封装进去呢?
,那我回答不了你而如果是对鼠标滚轮事件有疑问的,可以参考这里
你是真的在抱怨jquery做得不够好的话,我建议你自己写一个jquery的插件实现鼠标滚轮事件的绑定