Javascript 获取调用$(window.bind(";mousewheel";)函数的元素

Javascript 获取调用$(window.bind(";mousewheel";)函数的元素,javascript,jquery,html,Javascript,Jquery,Html,我在jQuery中有一个鼠标滚轮函数绑定到控制滑块的窗口元素 现在,我还有一个可滚动的ul项,在滚动时,我也不想更改滑块 我是否可以将窗口.bind功能与$(此)功能组合在一起,以便在ul中滚动时不更改滑块 下面是滚动条上滑块更改的代码 $(window).bind('mousewheel', function(e) { if(e.originalEvent.wheelDelta / 120 > 0) { //INCREASE SLIDER ON SCROLL UP

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

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

我是否可以将
窗口.bind
功能与
$(此)
功能组合在一起,以便在
ul
中滚动时不更改滑块

下面是滚动条上滑块更改的代码

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

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

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

$(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        
   }
});

我会这样做,使它跨浏览器:

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 {

    }
}
if(document.addEventListener){
document.addEventListener(“mousewheel”,MouseWheelHandler,false);//IE9,Chrome,Safari,Oper
document.addEventListener(“wheel”,mouseweelHandler,false);//Firefox
}否则{
document.attachEvent(“onmousewheel”,MouseWheelHandler);//IE 6/7/8
}
函数mouseweelHandler(){
e=window.event | | e;
var delta=数学最大值(-1,数学最小值(1,(e.Wheel delta | | |-e.deltaY | |-e.细节));
//向下滚动?
if(δ<0){
}
//向上滚动?
否则{
}
}

如果($(e.target).最接近('ul').长度)
???e.target确实解释了它是如何工作的。再次给出完美的答案。非常感谢!:)这在IE8上不起作用。事件将永远不会被触发。@阿尔瓦罗,这是正确的,但与OP问题无关,那么为什么要投否决票?@A.Wolff是的,很好。你是对的。只需编辑答案,我就可以再次更改投票。@Alvaro没关系,我不会为此哭泣;)@A.沃尔夫不太喜欢。如果你用
$(window.bind('mousewheel',function(e){
测试了它,你是对的,但这根本不能回答OP的问题