首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导警报自动关闭不工作

引导警报自动关闭不工作
EN

Stack Overflow用户
提问于 2016-08-08 20:00:54
回答 2查看 10.2K关注 0票数 2

我编写了一个简单的JQuery脚本,可以在不同的时间内自动关闭网页上的每个警报。

这是我的JQuery代码:

代码语言:javascript
复制
$(function() {
        var alert = $('div.alert[auto-close]');
        alert.each(function() {
            var time_period = $(this).attr('auto-close'); 
            setTimeout(function() {
                $(this).alert('close');
            }, time_period);
        });
     });

以下是我的两个示例警报:

代码语言:javascript
复制
<div class="alert alert-danger alert-dismissible" role="alert" auto-close="3000">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                alert one
            </div>
<div class="alert alert-success alert-dismissible" role="alert" auto-close="5000">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                alert two
            </div>

每个警报都有一个带有值的自定义属性,该属性用作警报关闭时间段。

由于某种原因,警报关闭不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-08 20:05:59

$(this)setTimeout作用域中被更改。将其缓存在变量中。在我的例子中,that

代码语言:javascript
复制
$(function() {
  var alert = $('div.alert[auto-close]');
  alert.each(function() {
    var that = $(this);
    var time_period = that.attr('auto-close');
    setTimeout(function() {
      that.alert('close');
    }, time_period);
  });
});

工作片段:

代码语言:javascript
复制
$(function() {
  var alert = $('div.alert[auto-close]');
  alert.each(function() {
    var that = $(this);
    var time_period = that.attr('auto-close');
    setTimeout(function() {
      that.alert('close');
    }, time_period);
  });
});
代码语言:javascript
复制
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div id="moo" class="alert alert-danger alert-dismissible" role="alert" auto-close="3000">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
  </button>
  alert one
</div>
<div class="alert alert-success alert-dismissible" role="alert" auto-close="5000">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
  </button>
  alert two
</div>

票数 4
EN

Stack Overflow用户

发布于 2021-07-19 11:34:33

我将对父元素使用.on("DOMSubtreeModified")

代码语言:javascript
复制
<div id="messages"></div>
<script>
    // If anything gets appended in #messages, timer is set to remove first element
    $("#messages").on('DOMSubtreeModified', function(){
        var firstChild = this.firstChild;
        setTimeout(function(){
            $(firstChild).alert("close"); //You are looking for this
        }, 2000);
    })
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38837562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档