簡體   English   中英

不能同時使用ajax POST和jquery動畫(使用Bootstrap)

[英]Can't use ajax POST and jquery animation simultaneously (using Bootstrap)

我正在使用具有邊欄的Bootstrap模板 ,並且當用戶單擊.nav-menu (或模板中的公司名稱)時,邊欄會隱藏/取消隱藏。

$(document).ready(function () {

    $( '.nav-menu' ).click(function() {
         event.preventDefault();
         if($( '.nav-menu-item' ).is(":visible")){
              $('.nav-menu-item' ).hide('slide', {direction:'left'}, 1000);
              $('#menu-item-container').addClass('sidebar-hidden');
         } else{
              $('.nav-menu-item' ).show('slide', {direction:'left'}, 1000);
              $('#menu-item-container').removeClass('sidebar-hidden');  
         }
    });
});

上面的代碼工作正常。

當我嘗試包含如下所示的ajax帖子時,就會出現問題:

$(document).ready(function () {

    $( '.nav-menu' ).click(function() {
         event.preventDefault();
         if($( '.nav-menu-item' ).is(":visible")){
              $('.nav-menu-item' ).hide('slide', {direction:'left'}, 1000);
              $('#menu-item-container').addClass('sidebar-hidden');

              $.ajax({
                url:'/userSettings',
                type:'POST',
                data:{'sidebar':'0'}
              });


         } else{
              $('.nav-menu-item' ).show('slide', {direction:'left'}, 1000);
              $('#menu-item-container').removeClass('sidebar-hidden'); 

              $.ajax({
                url:'/userSettings',
                type:'POST',
                data:{'sidebar':'1'}
              });

         }
    });
});

將此添加到我的public / js文件夾中,並將以下內容添加到頁腳中:

<script type="text/javascript" src="js/jquery-3.3.1.js"></script>

現在,ajax POST可以正常工作(除了我必須雙擊.nav-menu ),但是顯示/隱藏動畫無法正常工作!

$('.nav-menu-item' ).hide('slide', {direction:'left'}, 1000); 部分代碼根本不起作用!

這是Chrome控制台中的錯誤(其中有7270個):

jquery-3.3.1.js:6710 Uncaught TypeError: jQuery.easing[this.easing] is not a function
    at init.run (jquery-3.3.1.js:6710)
    at tick (jquery-3.3.1.js:7094)
    at Function.jQuery.fx.tick (jquery-3.3.1.js:7436)
    at schedule (jquery-3.3.1.js:6813)

不知道這是否相關,但這是整個頁腳:

//bootstrap required
<script src="https://cdnjs.cloudflare.com/ajax/libs/feather-icons/4.9.0/feather.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
//bootstrap required

<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script src="js/dashboard.js"></script>
<script src="js/jquery.js"></script>
</body>
</html>

jQuery hide()文檔顯示具有3個參數的hide的簽名是hide(duration,easing,complete),其中easing和complete是函數。 您正在傳遞三個參數。 第一個只是通過jQuery進行后備處理,而第二個是寬松的,它需要一個函數並且您已經傳遞了一個對象。

也許它只是在添加ajax代碼之前才起作用。 也許那時您也會遇到錯誤,但是它們並沒有阻止其他代碼的運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM