0

正常に動作する .toggle() メソッドを使用したコードがありましたが、後で .off() メソッドでバインド解除できるように .toggle() を .on('click'..) に置き換える必要がありました。

以下は、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});

});

2 番目のコードは次のとおりです。

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