将jQuery脚本转换为可以在调整大小处理程序中调用的函数

时间:2019-04-02 10:31:21

标签: javascript jquery

我有以下jQuery:

$(window).scroll( function() {
    if( $(this).scrollTop() > 0 ) {
        $(".header-layout, .top-tier-menu-bar ").hide();
    }
    else {
        $(".header-layout, .top-tier-menu-bar").show();
    }
});

我希望将其转换为函数,以便在用户调整窗口大小时脚本中断时可以使用$(window).resize(function(){...})来引用它。

我尝试过将其包裹为这样:

jQuery.fn.myfunction = function() {
    $(window).scroll( function() {
    if( $(this).scrollTop() > 0 ) {
        $(".header-layout, .top-tier-menu-bar ").hide();
    }
    else {
        $(".header-layout, .top-tier-menu-bar").show();
    }
});
}

但是这导致jQuery停止工作。谁能告诉我我在做什么错?谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我认为您可能会使其功能变得有些困难。 Scott提到的标准回调应该可以解决问题。

function checkScrollPosition(){
    if( $(window).scrollTop() > 0 ) {
        $(".header-layout, .top-tier-menu-bar ").hide();
    }
    else {
        $(".header-layout, .top-tier-menu-bar").show();
    }
}

$(window).scroll( function() {
  checkScrollPosition();
});

$(window).resize( function() {
  checkScrollPosition();
});

或者,您可以使用on,它将多个事件作为其参数:

$(window).on("scroll resize", checkScrollPosition);