我有一个带有 .toggle() 方法的代码,它工作得很好,但必须用 .on('click'..) 替换 .toggle() 才能稍后用 .off() 方法解除绑定。
这是使用 toggle() 方法的第一个代码:
var befrestorex;
var befrestorey;
var befrestorew;
var befrestoreh;
var toggled =false;
$('#restorebtndiv').toggle(
function(){
befrestorex = $('#windowdiv').css('left');
befrestorey = $('#windowdiv').css('top');
befrestorew = $('#windowdiv').css('width');
befrestoreh = $('#windowdiv').css('height');
windowScrollTopBrestore = $(document).scrollTop()+'px';
console.log(windowScrollTopBrestore);
$('#windowdiv').css({'left':'0px','top':windowScrollTopBrestore,'width':'100%','bottom':'50px','height':'100%'});
},function(){
$('#windowdiv').css({'left':befrestorex,'top':befrestorey,'width':befrestorew,'height':befrestoreh});
});
第二个代码是:
var befrestorex;
var befrestorey;
var befrestorew;
var befrestoreh;
var toggled =false;
$('#restorebtndiv').on('click', function(){
console.log("function started ...");
befrestorex = $('#windowdiv').css('left');
befrestorey = $('#windowdiv').css('top');
befrestorew = $('#windowdiv').css('width');
befrestoreh = $('#windowdiv').css('height');
if (!toggled){
toggled=true;
windowScrollTopBrestore = $(document).scrollTop()+'px';
console.log(windowScrollTopBrestore);
$('#windowdiv').css({'left':'0px','top': windowScrollTopBrestore,'width':'100%','bottom':'50px','height':'100%'});
}
else {
toggled=false;
$('#windowdiv').css({'left':befrestorex,'top':befrestorey,'width':befrestorew,'height':befrestoreh});
console.log(toggled);
}
});
在 "else" 中, $('#windowdiv').css({'left':befrestorex,'top':befrestorey,'width':befrestorew,'height':befrestoreh}); 对匹配的 div 没有影响。它很奇怪,因为在第一个代码中它工作没有任何问题。我用谷歌搜索找到一种用 jquery 刷新 div 的方法,我找到了使用 .fadeIn('fast') 的解决方案,但它都不起作用。有人有想法吗?