1. ホーム
  2. javascript

[解決済み] Bootstrap Modalsは閉じた後、bodyにpadding-rightを追加し続ける。

2022-08-30 16:41:59

質問

BootstrapとParseフレームワークを使用して、小さなウェブアプリを構築しています。しかし、これらのBootstrapのモーダルは、閉じた後にボディにpadding-rightを追加し続けます。これを解決するにはどうしたらよいでしょうか。

私はこのコードを私のjavascriptに入れようとしました。

$('.modal').on('hide.bs.modal', function (e) {
    $("element.style").css("padding-right","0");
});



しかし、それは動作しません。誰かこれを修正する方法を知っていますか?

私のコードです。

        <button type="button" class="btn btn-lg btn-default" data-toggle="modal" data-target="#loginModal">Admin panel</button>

         <div id="loginModal" class="modal fade" role="dialog">
                  <div class="modal-dialog modal-sm">

                    <!-- Modal content -->
                    <div class="modal-content">

                      <!-- header -->
                      <div class="modal-header"> 
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Login</h4>
                      </div>

                      <!-- body -->
                      <div class="modal-body text-center" >
                          <input class='form-control' type="text" id="userName" placeholder="Username" ng-model='username'>
                          <input class='form-control' type="password" id="password" placeholder="Password" ng-model='password'>
                        
                      <div class="modal-footer">
                        <button type="button" class="btn btn-default" id="loginButton" ng-click="goToAdminPanel()">Login</button>
                        <button type="button" class="btn btn-default" data-dismiss="modal" id="closeButton">Close</button>
                      </div>

                    </div>

                 </div>
                </div>
           </div>

        <div id="adminPanel" class="modal fade" role="dialog">
                  <div class="modal-dialog modal-lg">

                    <!-- Modal content -->
                    <div class="modal-content">

                      <!-- header -->
                      <div class="modal-header"> 
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Admin Panel</h4>
                      </div>

                      <!-- body -->
                      <div class="modal-body" >
                        
                        </div>
                        
                      <div class="modal-footer">
                        <button type="button" class="btn btn-default" id="saveButton">Save</button>

                        <button type="button" class="btn btn-default" data-dismiss="modal" id="closeButton">Close</button>

                      

                    </div>

                 </div>
                </div>
           </div>



    $scope.goToAdminPanel = function(){
    Parse.User.logIn($scope.username,$scope.password,{
        success: function(user){
            $('#loginModal').modal('hide');
            $('#adminPanel').modal();
        },
        error: function(user, error) {
            alert('Wrong username and/or password');
        }
    });
}

BootstrapとParseフレームワークを使用して、小さなウェブアプリを構築しています。しかし、これらのBootstrapのモーダルは、閉じた後、ボディにpadding-rightを追加し続けます。これを解決するにはどうしたらよいでしょうか。

どのように解決するのですか?

これは Bootstrap のモーダルの不具合かもしれません。私のテストでは、この問題は #adminPanel が初期化されている間に #loginModal はまだ完全に閉じられていない。回避策としては、アニメーションを削除するために fade クラスから #adminPanel#loginModal を呼び出す前にタイムアウト(~500ms)を設定するか、または $('#adminPanel').modal(); . これが役に立つといいのですが。