获取名为$(window).bind(“mousewheel”)函数的元素

时间:2014-03-05 12:08:38

标签: javascript jquery html

我在jQuery中有一个鼠标滚轮功能绑定到控制滑块的窗口元素。

现在,我还有一个可滚动的ul项目,在滚动时,我也不想更改滑块。

我可以将window.bind函数与$(this)函数结合使用,以便在ul中滚动时不更改滑块吗?

以下是滚动条中滑块更改的代码

$(window).bind('mousewheel', function(e) {
   if(e.originalEvent.wheelDelta / 120 > 0) {
      //INCREASE SLIDER ON SCROLL UP
   } else {
  //DECREASE SLIDER ON SCROLL UP        
   }
});

在我增加滑块或减小滑块时,我想检查是否在ul元素中调用了此鼠标滚轮动作。如果是,则滑块不应更改。

2 个答案:

答案 0 :(得分:1)

我会这样做以使其跨浏览器:

if (document.addEventListener) {
    document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
    document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
} else {
    document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
}


function MouseWheelHandler(){
    e = window.event || e;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.deltaY || -e.detail)));

    //scrolling down?
    if (delta < 0) {

    }

    //scrolling up?
    else {

    }
}

答案 1 :(得分:0)

如果我理解你的问题,请使用:

$(window).bind('mousewheel', function(e) {
   if($(e.target).closest('ul').length) return;
   if(e.originalEvent.wheelDelta / 120 > 0) {
      //INCREASE SLIDER ON SCROLL UP
   } else {
  //DECREASE SLIDER ON SCROLL UP        
   }
});