Javascript 我的引导警报在关闭后不会显示
嗨,我有下面的警告,是隐藏在页面上Javascript 我的引导警报在关闭后不会显示,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,嗨,我有下面的警告,是隐藏在页面上 <div class="alert alert-success" id="selectCodeNotificationArea" hidden="hidden"> <button type="button" class="close" data-dismiss="alert">×</button> @TempData["selCode"] </div> 这显然是链接到我的ht
<div class="alert alert-success" id="selectCodeNotificationArea" hidden="hidden">
<button type="button" class="close" data-dismiss="alert">×</button>
@TempData["selCode"]
</div>
这显然是链接到我的html中的一个按钮
显示警报后,如果我使用&次关闭它
下次按下按钮打开警报时,我可以看到$('selectCodeNotificationArea')。show()代码>在我的调试屏幕中被调用,但警报不会再次显示
以前有人经历过吗 数据将完全删除元素。如果要再次显示该警报,则需要隐藏该警报
比如,
<div class="alert alert-success" id="selectCodeNotificationArea" hidden="hidden">
<button type="button" class="close" data-hide="alert">×</button>
@TempData["selCode"]
</div>
Bootsrap$(选择器).alert('close')
()实际上删除了警报元素,因此您无法再次显示它。
要实现所需的功能,只需从关闭按钮定义中删除data disclesh=“alert”
属性,并添加一些小事件处理程序来隐藏警报
<div class="alert alert-success" id="selectCodeNotificationArea" hidden="hidden">
<button type="button" class="close alert-close">×</button>
@TempData["selCode"]
</div>
<script>
$(function() {
$(document).on('click', '.alert-close', function() {
$(this).parent().hide();
})
});
</script>
&时代;
@TempData[“selCode”]
$(函数(){
$(文档)。在('单击','上。警报关闭',函数(){
$(this.parent().hide();
})
});
实际上,引导警报设计为删除而不是隐藏。
通过查看警报消息可以看出,它没有任何包装元素。
因此,任何更改警报消息的尝试都需要额外的代码(查找文本节点元素)。
您应该重新设计应用程序,并在每次需要更改/再次显示时创建新的.alert元素。我也遇到了这个问题,上面勾选的解决方案的问题是我仍然需要访问标准引导警报关闭事件
我的解决方案是编写一个脚本,它以最小的麻烦注入一个正确格式的引导3警报(根据需要使用或不使用关闭按钮),并允许您在盒子关闭后轻松地重新生成警报
有关用法、测试和示例,请参阅。更好的方法是从标记中删除,data dismission=“alert”
,并使用类名,即关闭以隐藏和显示错误/警告
// WHEN CLOSE CLICK HIDE THE ERROR / WARNING .
$(".close").live("click", function(e)
{
$("#add_item_err").hide();
});
// SOME EVENT TRIGGER IT.
$("#add_item_err").show();
[我正在处理动态添加的元素,这就是我使用“live”的原因,您可能需要根据您的要求进行更改。]我使用了以下工作方法
$(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">×</span>
</button>
<strong>Danger!</strong>
</div>
显示/隐藏警报的按钮
&时代;
危险强>
我喜欢这种方法。这个想法是从这篇文章中产生的吗?-->我必须使用:“$(文档)。在(“单击”,“数据隐藏]”,function()”。您的语法对不起作用,但也没有引发任何错误。知道为什么吗?如果Bootstrap将此功能包括在开箱即用的情况下,而不是将其添加到外部(id est,作为站点JS的一部分),那就太好了。这回答了您的问题吗?
$(document).ready(function(){
$("#btnFV").click(function()
{
$("#alertFV").addClass("in");
});
$("#alertFV").on("close.bs.alert", function ()
{
$("#alertFV").removeClass("in");
return false;
});
});
<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">×</span>
</button>
<strong>Danger!</strong>
</div>