一秒后Jquery隐藏gif

时间:2017-06-26 12:14:40

标签: javascript jquery html

我试着在一秒钟后隐藏我的gif图像:

 $('input.sortInp').change(function () {
  $(this).parents('.float_left').find('.sortLoaderDiv').html('<img class="sortLoader" src="/images/icons/loading_small1.gif">');

  setTimeout(function () {
    $(this).parents('.float_left').find('.sortLoaderDiv').html("Some text");
  },1000);

  });

我看到了我的gif,但它并没有隐藏在我的setTimeout函数中。
如何停止此gif并替换div文本?感谢。

3 个答案:

答案 0 :(得分:2)

试试这个

from itertools import chain

def slots_for_instance(inst):
    def _slots_for_class(c):
        slots = getattr(c, '__slots__', ())
        if isinstance(slots, str):
            # __slots__ can be a string naming a single attribute
            slots = (slots,)
    return set(chain.from_iterable(
        getattr(_slots_for_class(c) for c in type(inst).__mro__))

答案 1 :(得分:1)

我能想到的最佳解决方案是使用闭包变量。

问题是:setTimeout()的回调是与主线程分开执行的。

回调的执行上下文将有所不同,因此回调内部不会指向与setTimeout外部相同的对象,在这种情况下是悬停的.sortInp元素。

&#13;
&#13;
 $('input.sortInp').change(function () {
  $(this).parents('.float_left').find('.sortLoaderDiv').html('<img class="sortLoader" src="https://opensource.org/files/google.png">');
  var self = $(this);
  setTimeout(function () {
    self.parents('.float_left').find('.sortLoaderDiv').html("Some text");
  },1000);

  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="float_left">
<input type="text" class="sortInp">
<div class="sortLoaderDiv"></div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

当您html() .sortLoaderDiv时,input.sortInp中的所有代码都会消失。因此,您的输入input.sortInp也会消失。因此jQuery无法在setTimeout函数中找到输入input.sortInp。发生这种情况是因为您选择了选择器的父类。更正您的代码,以便html()方法不会删除$('input.sortInp').change(function () { $('.sortLoaderDiv').html('<img class="sortLoader" src="/images/icons/loading_small1.gif">'); setTimeout(function () { $('.sortLoaderDiv').html("Some text"); },1000); } 。或者,试试这个,

        TabItem tabItem = new TabItem();
        var stackPanel = new StackPanel();

        var stackPanelToolTip = new System.Windows.Controls.ToolTip();
        stackPanelToolTip.Content = "ToolTip content";
        stackPanel.ToolTip = (stackPanelToolTip);

        tabItem.Header = stackPanel;