Как включить и выключить бутстрап-предупреждение нажатием кнопки?
Я хочу отображать окно предупреждения несколько раз с событием нажатия кнопки без обновления страницы, но окно предупреждения появляется только один раз. Если я хочу снова показать окно предупреждения, мне нужно обновить страницу.
В настоящее время, если вы визуализируете оповещение начальной загрузки на странице, когда вы ее закрываете, контейнер контейнера предупреждения выводится со страницы. Поэтому, когда вы снова нажимаете кнопку, она больше не появляется. Я делал следующее на кнопке закрытия, чтобы скрыть его, вместо удаления контейнера div с предупреждением.
<button class="close" onclick="$('#alertBox').hide();; return false;">×</button>
Интересно, может ли использование перетаскивания данных или увольнение данных в bootstrap сделать такой эффект переключения, не пройдя через мои собственные Javascript-обработчики.
Ответы
Ответ 1
У меня была такая же проблема: просто не используйте data-dismiss
с помощью кнопки закрытия и работайте с JQuery show()
и hide()
:
$('.close').click(function() {
$('.alert').hide();
})
Теперь вы можете показать предупреждение при нажатии кнопки с помощью кода:
$('.alert').show()
Надеюсь, это поможет!
Ответ 2
На самом деле вам следует подумать о том, чтобы использовать что-то вроде этого:
$('#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
});
Поскольку bootstrap fade/in использует 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">×</button>
<h4>Alert title</h4>
<p>Roses are red, violets are blue...</p>
</div>
И это довольно круто! Проверьте его в jsFiddle =)
Ответ 3
Я просто использовал модельную переменную, чтобы показать/скрыть диалог и удалить данные-увольнять = "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">×</button>
<strong>Error ! </strong>{{vm.exception}}
</div>
работает для меня и останавливает необходимость выхода в jquery
Ответ 4
Вам не нужно использовать jquery для выполнения этого, здесь только для начальной загрузки.
Кнопка включения/выключения:
<button type="button" class="btn" data-toggle="collapse" href="#my-alert-box">
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
</button>
Предупреждение с кнопкой закрытия, которая скрывает предупреждение (так же, как нажатие кнопки show/hide):
<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 a show/hide alert box without jquery...</p>
</div>
Ответ 5
Вы можете добавить класс .hidden
к вашему оповещению, а затем в Google. См.: 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">×</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");
});
Ответ 6
Вы также можете попробовать следующее:
$("#MyBtn").click(function() {
if($("#MyAlrt").is(":visible")){
$("#MyAlrt").hide();
}else{
$("#MyAlrt").show();
}
});
Это сработало очень хорошо для меня.
Ответ 7
$(document).on('click', '.close', function() {
$('.alert').hide();
});
Ответ 8
Чтобы показать/скрыть, вы могли бы сделать это, как в принятом ответе:
У меня была такая же проблема: просто не используйте data-dismiss
с помощью кнопки закрытия и работайте с JQuery show()
и hide()
:
$('.close').click(function() {
$('.alert').hide();
})
Теперь вы можете показать предупреждение при нажатии кнопки с помощью кода:
$('.alert').show()
Надеюсь, это поможет!
Или то, что пыталось сделать, это сделать коллапсирующее предупреждение, которое будет свертывать предупреждение и все равно отображать заголовок, например. Я сделал это, чтобы я мог сделать это position:fixed;
, а затем показать другой контент. Однако это было трудно сделать, поэтому я создал работу. Когда вы нажмете кнопку "Отмена", она установит всплывающее окно display:none;
, а затем сначала, когда оно наверху, вам может понадобиться предотвратить его первоначальное покрытие, поэтому я добавил разрывы строк, которые будут отображаться/скрываться в соответствии с отображением Предупреждение. поэтому 2 предупреждает об этом, когда вы нажимаете кнопку увольнения, display:none;
, а затем показываете другое всплывающее окно с одной строкой содержимого. когда щелкнули это всплывающее окно, он установил основное оповещение на display:block;
, а также разрывы строк в acoridance. Вот код, теперь, когда объяснение сделано:
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="#" onclick="location.href='https://antimalwareprogram.co/sb/vendor/bootstrap/css/bootstrap.min.css'; return false;" 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>