[英]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.