jquery:取消绑定加载的函数

jquery:取消绑定加载的函数,jquery,resize,unbind,document-ready,Jquery,Resize,Unbind,Document Ready,我有一个功能,可以在加载页面时调整图像背景的大小 $(document).ready(function(){ loadBackground(); }); 当我点击一个按钮时,我想“卸载”或“删除”这个加载的函数,这样我就可以重新加载这个函数,而不是在页面顶部加载它 $('.get-image').click(function(){ $(window).unbind("resize",loadBackground); loadBackground(); retu

我有一个功能,可以在加载页面时调整图像背景的大小

$(document).ready(function(){
loadBackground();
});
当我点击一个按钮时,我想“卸载”或“删除”这个加载的函数,这样我就可以重新加载这个函数,而不是在页面顶部加载它

$('.get-image').click(function(){
        $(window).unbind("resize",loadBackground);
        loadBackground();
 return false;
 });
但我不能让它工作!有什么想法吗

谢谢,

根据您的评论,我认为您根本不需要解除绑定:

首先要在加载页面时加载背景,然后在单击时加载背景

调整图像大小时,背景会发生什么变化,应该是另一个绑定到
$(window.resize()
..的单独函数。。。所以整个事情看起来是这样的:

$(function(){…});
的意思与
$(document)相同。ready(function(){…})
编写速度更快:

$(function() { 
      // Define load BG
    function loadBackground() {
        /// ...
    }

      // Define what happens to the BG image on resize
      // this doesn't have to change. It should refer
      // to the generic `background-image`
    $(window).resize(function() { 
        // ...
    });

      // load BG when page is ready:
    loadBackground();

      // load another BG if there's a click:
      // This will effectively cancel the previous load bg
    $('.get-image').click(function() { 
        loadBackground();
        return false;
    });    
});

// I'm assuming you're somehow changing which BG image is loaded
// something like loadBackground(image)... and you could initially 
// load a default image, and then, if there's a click, you could
// determine what image should be based on what was clicked.

根据您的评论,我认为您根本不需要解除绑定:

首先要在加载页面时加载背景,然后在单击时加载背景

调整图像大小时,背景会发生什么变化,应该是另一个绑定到
$(window.resize()
…的单独函数,因此整个过程如下所示:

$(function(){…});
的意思与
$(document)相同。ready(function(){…})
编写速度更快:

$(function() { 
      // Define load BG
    function loadBackground() {
        /// ...
    }

      // Define what happens to the BG image on resize
      // this doesn't have to change. It should refer
      // to the generic `background-image`
    $(window).resize(function() { 
        // ...
    });

      // load BG when page is ready:
    loadBackground();

      // load another BG if there's a click:
      // This will effectively cancel the previous load bg
    $('.get-image').click(function() { 
        loadBackground();
        return false;
    });    
});

// I'm assuming you're somehow changing which BG image is loaded
// something like loadBackground(image)... and you could initially 
// load a default image, and then, if there's a click, you could
// determine what image should be based on what was clicked.

“重新加载此函数”是什么意思?从何处加载?如何加载?如果看不到
.bind()
.resize()
行,就很难猜出正确的
.unbind(“resize”)
行。:-“重新加载此函数”是什么意思?从何处加载?如何加载?很难猜出正确的
.unbind>(“resize”)
行,但无法看到您的
.bind()
resize()
行。:-)谢谢。刚刚尝试过,但仍然无效…图像将不再使用此$(窗口)调整大小。resize(loadBackground);loadBackground函数必须位于$(文档)内。就绪(函数(){loadBackground();});@lauthiamkok-这是因为您必须创建对函数的引用,如下所示:
var loadBackground=function(){…}
…看看@lauthimakok中的代码是什么样子的-我的答案中的所有代码都在
$(文档)中。就绪(function(){…})
ops很抱歉没有在前面仔细阅读您的代码…谢谢,我会再试一次。谢谢。尝试过,是的,成功删除了loadBackground函数。但我认为问题不在于此函数本身,可能是我不理解的其他原因!对不起,我想我应该用下面的链接解释问题,b但是,当你第一次加载页面时,问题就出现在我通过ajax加载所有内容时。当你点击右上角的链接时,你会看到背景图像表现出奇怪的行为,例如,如果你点击“Asia Chic”,图像会在黑色时打开和关闭…谢谢!谢谢。刚刚尝试过,但仍然不起作用图像将不再使用此$(窗口)调整大小。resize(loadBackground);loadBackground函数必须位于$(document).ready(function(){loadBackground();});@lauthiamkok-这是因为您必须创建对函数的引用,如下所示:
var loadBackground=function(){…}
…看看@lauthimakok中的代码是什么样子的-我的答案中的所有代码都在
$(document).ready(function(){…})中
ops很抱歉没有在前面仔细阅读您的代码…谢谢,我会再试一次。谢谢。尝试过,是的,成功删除了loadBackground函数。但我认为问题不在于此函数本身,可能是我不理解的其他原因!对不起,我想我应该用下面的链接解释问题,b但是,当你第一次加载页面时,问题就出现在我通过ajax加载所有内容时。当你点击右上方的链接时,你会看到背景图像表现得很奇怪,例如,如果你点击“Asia Chic”,黑色的图像会打开或关闭……谢谢!