gpt4 book ai didi

jquery - 如何取消/放弃滚动功能?

转载 作者:行者123 更新时间:2023-12-01 00:02:59 26 4
gpt4 key购买 nike

我有一个像这样的窗口滚动功能:

function fixDiv() {
//scroll script goes here
}
$(window).scroll(fixDiv);

现在我想取消点击按钮时的功能

$('button').on('click',function(){
//cancel the fixDiv() function
// I have tried this:
fixDiv != fixDiv; // and changed/set variable for fixDiv() like var fixDiv = function(){}
});

但似乎不起作用。有什么办法可以取消该功能。

(请注意:如果再次单击该按钮,应该会再次起作用)

<小时/>

请阅读赏金说明。

最佳答案

尝试类似的事情:

DEMO

$('button').on('click', function () {
this.off = !this.off;
$(window)[this.off?'off':'on']("scroll", fixDiv )
});

更新

现在,如果您想重写函数本身,可以使用以下代码:

//using anonymous function as handler, code inside is processing on the fly
$('#anchorAnonymous').on('click',function(){
fixDiv();
//any other code, still be called even fixDiv() is overrided...
});
//click to override fixDiv() function
$('#btnoverride').on('click', function () {
this.override = !this.override;
//$.noop = function(){} -> do nothing
fixDiv = this.override?$.noop:storedFixDiv;
});
//this is used to store fixDiv() function
window.storedFixDiv = fixDiv;

请注意,如果用作引用方法,重写函数不会重写处理程序。因为 jQuery 将为 $._data(elem,"events") 中存储的每个事件创建一个处理程序。为了说明这一点,请参见 jsfiddle 中的差异:

jsFiddle example

关于jquery - 如何取消/放弃滚动功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902374/

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