gpt4 book ai didi

javascript - 无法同时使用ajax POST和jquery动画(使用Bootstrap)

转载 作者:行者123 更新时间:2023-12-01 01:18:13 27 4
gpt4 key购买 nike

我正在使用 Bootstrap Template有一个侧边栏,当用户单击.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'}
});

}
});
});

我添加了this在我的 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() documentation显示带有 3 个参数的 hide 的签名是 hide(duration, easing,complete),其中 easing 和complete 是函数。您正在传递三个参数。第一个只是通过 jQuery 的后备处理,但第二个(缓动)需要一个函数,而您已经传递了一个对象。

也许它似乎只在添加 ajax 代码之前才起作用。也许您当时也遇到了错误,但它们并没有阻止其他代码运行。

关于javascript - 无法同时使用ajax POST和jquery动画(使用Bootstrap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509652/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com