Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery脚本转换为可在调整大小处理程序中调用的函数_Javascript_Jquery - Fatal编程技术网

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

Javascript 将jQuery脚本转换为可在调整大小处理程序中调用的函数,javascript,jquery,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(); } }); 我希望将它转换为一个函数,这样我就可以使用$(wind

我有以下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停止工作。谁能告诉我我做错了什么?谢谢您的帮助。

我想您可能使您的功能变得比需要的稍微困难一些。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();
});
或者,您可以在上使用,它将许多事件作为其参数:

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

我认为你可能使它比你的功能所需要的稍微困难一些。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();
});
或者,您可以在上使用,它将许多事件作为其参数:

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

这是对JQuery实用程序功能的不当使用。如果要创建事件回调,请根据需要执行该操作。这是对JQuery实用程序功能的不当使用。如果要创建事件回调,请根据需要执行此操作。注意:快捷方式事件方法的使用在不久前已被弃用。相反,总是使用
.on()
设置甚至回调。我知道我不应该在评论中说谢谢,但是谢谢@Djave,这个解决方案非常适合我的需要。感谢您的努力。注意:快捷方式事件方法的使用在不久前就被弃用了。相反,总是使用
.on()
设置甚至回调。我知道我不应该在评论中说谢谢,但是谢谢@Djave,这个解决方案非常适合我的需要。感谢你的努力。