0

所以我有这个功能来防止侧边栏悬停时身体滚动。问题是,我无法让 mouseout 功能正常工作。

var currentScroll=0;
function lockscroll(){
    $(window).scrollTop(currentScroll);
}


$(document).ready(function (){

        $(".sidebarholder, .commentswrapper").hover(function (){
            currentScroll=$(window).scrollTop();
            $(window).bind('scroll',lockscroll);

        })  



})

我的问题是,如何在鼠标悬停时解除绑定?

如果我这样做,它就会完全停止工作。

    $(".sidebarholder, .commentswrapper").mouseout(function(){
        currentScroll=$(window).scrollTop();
        $(window).unbind('scroll');

    })
4

2 回答 2

3

jQueryhover()内置了“悬停”,这可能会有所帮助:

   $(".sidebarholder, .commentswrapper").hover(
     function (){ // hover over
       currentScroll=$(window).scrollTop();
       $(window).bind('scroll',lockscroll);
     },
     function (){ // hover off
       currentScroll=$(window).scrollTop();
       $(window).unbind('scroll',lockscroll);
     }
   )

http://api.jquery.com/hover/

于 2013-04-19T21:58:36.407 回答
0

你有没有尝试过

     $(document).ready(function () {
        $(".sidebarholder, .commentswrapper").hover(function () {
           currentScroll = $(window).scrollTop();
           $(window).bind('scroll', lockscroll);

        }, function () {
           currentScroll = $(window).scrollTop();
           $(window).unbind('scroll');

        })
     })
于 2013-04-19T22:00:46.560 回答