0

我有一个带有 .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') 的解决方案,但它都不起作用。有人有想法吗?

4

0 回答 0