38

我想通过按钮单击事件多次显示警报框,而无需刷新页面,但警报框只显示一次。如果我想再次显示警报框,我必须刷新页面。

目前,如果您在页面上呈现引导警报,当您关闭它时,警报的 div 容器将从页面中消失。因此,当您再次单击该按钮时,它不再显示。我一直在关闭按钮上执行以下操作以使其隐藏而不是删除警报的 div 容器。

<button class="close" onclick="$('#alertBox').hide();; return false;">×</button>

我想知道在引导程序中使用 data-toggle 或 data-dismiss 是否可以使这种切换效果起作用,而无需通过我自己的自定义 Javascript 处理程序。

4

9 回答 9

54

我遇到了同样的问题:只是不要使用data-dismiss关闭按钮并使用 JQueryshow()hide()

$('.close').click(function() {
   $('.alert').hide();
})

现在,您可以使用以下代码在单击按钮时显示警报:

$('.alert').show()

希望这可以帮助!

于 2012-06-14T08:45:50.510 回答
36

实际上你应该考虑使用这样的东西:

$('#the-thing-that-opens-your-alert').click(function () {
  $('#le-alert').addClass('in'); // shows alert with Bootstrap CSS3 implem
});

$('.close').click(function () {
  $(this).parent().removeClass('in'); // hides alert with Bootstrap CSS3 implem
});

由于引导淡入/淡入使用 CSS3 而不是 Jquery 在完整的 Javascript 中隐藏/显示。我的观点是,在移动设备上,CSS3 比 Js 更快。

您的 HTML 应如下所示:

<a id="the-thing-that-opens-your-alert" href="#">Open my alert</a>

<div id="le-alert" class="alert alert-warn alert-block fade">
  <button href="#" type="button" class="close">&times;</button>
  <h4>Alert title</h4>
  <p>Roses are red, violets are blue...</p>
</div>

这很酷!检查它在jsFiddle =)

于 2013-04-18T08:30:58.963 回答
3

我只是使用模型变量来显示/隐藏对话框并删除了 data-dismiss="alert"

例如

<div data-ng-show="vm.result == 'error'" class="alert alert-danger alert-dismissable">
    <button type="button" class="close" data-ng-click="vm.result = null" aria- hidden="true">&times;</button>
    <strong>Error  !  </strong>{{vm.exception}}
</div>

为我工作,不再需要外出 jquery

于 2014-05-19T07:27:35.157 回答
2

您不需要使用 jquery 来完成此操作,这是一个仅引导程序的解决方案。

开/关按钮:

<button type="button" class="btn" data-toggle="collapse" href="#my-alert-box">
   <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
</button>

带有隐藏警报的关闭按钮的警报(与单击显示/隐藏按钮相同):

<div id="my-alert-box" class="alert alert-info collapse" role="alert">
   <button type="button" class="close" data-toggle="collapse" href="#my-alert-box">
      <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
   </button>
   <p>Look, here's a show/hide alert box without jquery...</p>
</div>
于 2015-08-11T03:32:16.217 回答
1

您可以向警报添加.hidden类,然后对其进行调整。请参阅:JSFiddle

HTML

<a id="show-my-alert" href="#">Show Alert</a>

<div id="my-alert" class="alert alert-warning hidden" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">    
        <span aria-hidden="true">&times;</span>
    </button> 
    <strong>Warning!</strong> Better check yourself, you're not looking too good.
</div>

JavaScript

$("#show-my-alert, .close").click(function() {
    $("#my-alert").toggleClass("hidden");
});
于 2015-02-17T10:26:20.137 回答
0

你也可以试试这个:

$("#MyBtn").click(function() {

    if($("#MyAlrt").is(":visible")){
        $("#MyAlrt").hide();
    }else{
        $("#MyAlrt").show();
    }

});

它对我来说非常好。

于 2014-06-13T14:58:21.600 回答
0

$(document).on('click', '.close', function() {

   $('.alert').hide();

});

它适用于所有元素,包括新元素

于 2015-03-03T23:41:47.897 回答
0

要显示/隐藏,您可以在接受的答案中执行此操作:

我遇到了同样的问题:只是不要使用data-dismiss关闭按钮并使用 JQueryshow()hide()

$('.close').click(function() {
$('.alert').hide();
  })

现在,您可以使用以下代码在单击按钮时显示警报:

$('.alert').show()

希望这可以帮助!

或者尝试做的是制作一个可折叠的警报,该警报将折叠警报并仍然显示例如标题。我这样做是为了制作它position:fixed;,然后显示其他内容。然而这很难做到,所以我创造了一个解决方法。当您单击关闭按钮时,它会设置弹出窗口display:none;,然后首先当它位于顶部时,您可能需要阻止它最初覆盖内容,因此我添加了将根据警报显示显示/隐藏的换行符。所以 2 当您单击关闭时会发出警报,display:none;然后显示另一个只有一行内容的弹出窗口。单击此弹出窗口时,它会将主要警报设置display:block;为以及换行符。这是代码,现在已经完成了:

function ShowALERT() { 
  document.getElementById('ALERT').style.display = "block";
	document.getElementById('ShowALERT').style.display = "none";
	document.getElementById('breakShowALERT').style.display = "none";
	document.getElementById('breakALERT').style.display = "block";
	
}
function closeALERT() { 
   document.getElementById('ALERT').style.display = "none";
document.getElementById('breakShowALERT').style.display = "block";
  document.getElementById('ShowALERT').style.display = "block";
document.getElementById('breakALERT').style.display = "none";
	
}
#ALERT {
	position:fixed;
	display:block;
	width:100%;
	z-index:1;
	left:0px;
	top:0px;
	
	}
  #ShowALERT {
position: fixed;
display:none;
z-index:1;
top:0px;
left:0px;
width: 100%;
}
#breakShowALERT {
display:none;
}
	#breakALERT {
display:block;
}
<link href="https://antimalwareprogram.co/sb/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<div class="container">
    <button id="ShowALERT"  onclick="ShowALERT()" class="bg-primary"> 

	  <h5> <b>Important Alert</b></h5>
</button>
</div>
<div class=container>
   <div id="ALERT" class="alert bg-primary alert-dismissable">
 <a href="#" class="close" onclick="closeALERT()" aria-label="close">Dismiss</a>
 <h5><b>Note:</b> Alert Content here......................</h5>
</div>
 </div>
 <body>
 <div id='breakALERT'><br><br><br><br><br></div>
					<div id='breakShowALERT'><br><br></div>
 <p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p>
 </body>

于 2017-11-01T17:54:44.477 回答
0

我基于 Leiko 的解决方案使用了以下工作方法。

$(document).ready(function(){
    $("#btnFV").click(function()
    {
        $("#alertFV").addClass("in");
    });

    $("#alertFV").on("close.bs.alert", function ()
    {
        $("#alertFV").removeClass("in");
        return false;
    });
});

Html 正文包含以下警报

<button id="btnFV" class="form-control">Button To Show/Hide Alert</button>

<div id="alertFV"  class="alert alert-danger alert-dismissable fade show">
      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
         <span aria-hidden="true">&times;</span>
      </button>
      <strong>Danger!</strong> 
    </div>
于 2018-07-15T17:14:33.937 回答