jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 如何取消/放弃滚动功能?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个像这样的窗口滚动功能

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 )
});

updatE

现在,如果要覆盖函数本身,可以使用以下代码

//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 – 如何取消/放弃滚动功能?全部内容,希望文章能够帮你解决jquery – 如何取消/放弃滚动功能?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。