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”,黑色的图像会打开或关闭……谢谢!