当前位置: 首页 > 知识库问答 >
问题:

jquery显示/隐藏不等待完成

支才
2023-03-14

我试图定期:

  1. 从ajax调用获取数据
  2. 将数据与div的内容进行比较
  3. 如果是数据!=div的内容:隐藏div、更改数据、显示div

这是我的密码:

...

<div id="myDiv">old data</div>   
</body>

<script type="text/javascript">

$(document).ready( function() {
    updates();
    done();
});

function done() {
      setTimeout( function() {
      updates(); 
      done();
      }, 5000);
}

function replace(div, content){
    $(div).html(content)
}

function updates() {
    $.ajaxSetup({ cache: false });
    $.getJSON("mywebsite/get_data", function(data) {
        if ( $("#myDiv").html() !== data ){
            $("#myDiv").hide(400, replace("#myDiv", data));
            $("#myDiv").show(400);
        }
    });
}

</script>

...

问题在于,在div被完全隐藏之前,div内容被新数据替换,即使回调函数replace()被提供给hide()函数。

如何让hid()函数等待它的完成(在这个例子中是400毫秒),然后再调用替换()函数?

我还尝试了delay()和setTimeout(),但它也做了同样的事情。

谢谢

共有1个答案

陶裕
2023-03-14

我认为您不需要那种replace功能。无论如何,这应该是可行的:

function updates() {
    $.ajaxSetup({ cache: false });
    $.getJSON("mywebsite/get_data", function(data) {
        if ( $("#myDiv").html() !== data ) {
            $("#myDiv").hide(400, function() {
                $("#myDiv").html(data);
                $("#myDiv").show(400);
            })
        }
    });
}

看到JSFIDDLE(没有ajax调用)

 类似资料:
  • 主要内容:实例,jQuery hide() 和 show(),实例,实例,实例,jQuery toggle(),实例隐藏、显示、切换,滑动,淡入淡出,以及动画,哇哦! 因为时间是宝贵的,我们提供快捷方便的学习方法。 在小牛知识库,你可以学习需要的知识。 实例 jQuery hide() 简单的jQuery hide()方法演示。 jQuery hide() 另一个hide()实例。演示如何隐藏文本。 jQuery hide() 和 show() 通过 jQuery,您可以使用 hide() 和

  • 我执行一些由点击按钮触发的操作: 因此,基本上我只是隐藏一些< code >视图并显示一些其他视图,我的< code>EditText使用一组简单的< code >动画来“滑出”。 当操作被取消时,我会反转过程: 我想做的是将动画(反方向)应用于我的,因此它也会随着幻灯片动画消失。问题是所有代码都立即执行,因此在其动画完成之前就消失了。我尝试了一些奇怪的事情,比如使用并将动画放在方法中,在中设置的

  • 本文向大家介绍jQuery控制元素隐藏和显示,包括了jQuery控制元素隐藏和显示的使用技巧和注意事项,需要的朋友参考一下 1、jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: 2、jQuery淡入淡出效果 通过 jQuery,您可以实现元素的淡入淡出效果。 jQuery 拥有下面四种 fade 方法: fadeIn()

  • 本文向大家介绍jQuery隐藏和显示效果实现,包括了jQuery隐藏和显示效果实现的使用技巧和注意事项,需要的朋友参考一下 实例 jQuery hide() 简单的jQuery hide()方法演示。 jQuery hide() 另一个hide()实例。演示如何隐藏文本。 jQuery hide() 和 show() 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示

  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });

  • 提供显示/隐藏元素的功能。 标题 内容 类型 通用 支持布局 responsive,fixed-height,fill,container,fixed 所需脚本 https://c.mipcdn.com/static/v2/mip-toggle/mip-toggle.js 示例 基本使用 你可以使用事件 toggle, show 或 hide 以控制 mip-toggle 组件的显示与隐藏。 <b