gpt4 book ai didi

javascript - 如何删除满足特定条件时先前调用的函数?

转载 作者:行者123 更新时间:2023-12-02 19:49:44 27 4
gpt4 key购买 nike

我希望仅当浏览器大于 640px 时才调用函数。到目前为止,我有以下内容,当屏幕宽度大于 640px 时成功加载该函数,但我面临的问题是当浏览器宽度回到 640px 以下时code>,该功能仍然有效。在我的特定场景中,我不希望在较小的显示器上加载该函数,因此我尝试使用下面的代码来调用它。当浏览器大小调整回 640px 时,如何以某种方式删除/销毁该功能?

<script> 
function someFunction() {
// .. does something when the browser width is greater than 640px
}

(function($){
//detect the width on page load and load the function
$(document).ready(function(){
var current_width = $(window).width();

if(current_width > 640){
someFunction();
}
}
});

//update the width value when the browser is resized
$(window).resize(function(){
var current_width = $(window).width();

if(current_width > 640){
someFunction();
}

});

})(jQuery);
</script>

这是一个完整的 jsFiddle 示例,展示了我迄今为止所获得的帮助。 http://jsfiddle.net/7Dqna/26/

我正在实现一个粘性侧边栏,当它到达浏览器顶部时,它会随页面滚动,但我试图在较小的屏幕尺寸(想想移动设备)下关闭该功能。

它在页面刷新时起作用,但如果您将浏览器窗口放大,然后缩小(在 jsFiddle 示例中小于 400px),菜单仍然由该函数提供 CSS。所以我猜它没有接受调整大小的事情。

最佳答案

为什么不直接将宽度大小检查放入函数中,如果大小不至少为 640,则从函数中返回?例如

var jWindow = $(window);

jWindow.resize( function() {
someFunction();
});

function someFunction(){
if ( jWindow.width() < 640 ){ return; }
// do stuff here
}

或者,你可以这样做 window.someFunction = function(){ return; }

关于javascript - 如何删除满足特定条件时先前调用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449706/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com