Javascript 单击时从内存中删除函数
我会尽力解释我想做什么。我有一个调整大小的功能,当我按下一个按钮时就会运行。此函数用于在窗口外打开两列,并在调整窗口大小时将其保留。但是,我希望在稍后单击另一个div时重置该处理程序。只需从内存中删除或清除该函数,以避免调整大小。我读过一些帖子,但都能解决我的问题 我调整大小的功能是:Javascript 单击时从内存中删除函数,javascript,jquery,html,Javascript,Jquery,Html,我会尽力解释我想做什么。我有一个调整大小的功能,当我按下一个按钮时就会运行。此函数用于在窗口外打开两列,并在调整窗口大小时将其保留。但是,我希望在稍后单击另一个div时重置该处理程序。只需从内存中删除或清除该函数,以避免调整大小。我读过一些帖子,但都能解决我的问题 我调整大小的功能是: function resizeColumnsOut(){ $(window).resize(function() { var widthLeft = $('.column-left').o
function resizeColumnsOut(){
$(window).resize(function() {
var widthLeft = $('.column-left').outerWidth()+100,
widthRight = $('.column-right').outerWidth()+100,
vph = $(window).height();
$('.options').css({'height': vph + 'px', 'overflow': 'hidden'});
$('.column-left').css(
{'transform': 'translateX(-'+widthLeft+'px)',
'transition': 'all ease-out .6s'});
$('.column-right').css(
{'transform': 'translateX('+widthRight+'px)',
'transition': 'all ease-out .6s'});
}).resize();
}
$('[data-menu="close"]').click(function(){
$(this).hide();
resizeColumnsOut();
});
单击时重置上一个功能的My function(我的功能):
function goAbout(){
$('.about').click(function(){
/* Events like .off() or .unbind() don't solve my problem since the resizeColumnsOut() function is already running */
}
使用,而不是:
启用以下选项:
$(window).on('resize', function() { [code snipped] });
使用以下选项关闭:
$(window).off('resize');
您还需要中止或完成已开始的动画。当您说resizeColumnsOut函数仍在运行时,实际上是指它启动的CSS动画仍在运行:是的,.off是正确的选择。如果您的意思是动画仍在运行,则在执行.off之后,您需要设置transform:none!非常重要,使用.css进行转换。@Spokey非常感谢,问题解决了。我需要时断时续地玩:那时我或多或少没有走错方向:非常感谢你抽出时间。