У меня есть форма регистрации пользователя с некоторой информацией. При отправке выполняется ajax-вызов, который вставляет данные в БД и возвращает код состояния. В зависимости от статуса я показываю div. У div есть начальный класс «скрытый» и кнопка закрытия. По возвращении из php я удаляю «скрытый» класс и добавляю класс «alert-danger» или «alert-success».Класс добавления/удаления JQuery не работает во второй раз
После того, как пользователь нажимает кнопку «закрыть» (x), я снова добавляю «скрытый» класс и проверяю, имеет ли элемент класс «опасность оповещения» или «предупреждение-успех» и удаляет его. Это работает (или, по крайней мере, скрывается) в первый раз. Однако div не появляется во второй раз.
Что мне здесь не хватает?
Вот ДИВ
<div class="alert alert-block fade in status hidden">
<button type="button" class="close" data-dismiss="alert">×</button>
<h4 class="message-head"></h4>
<p class="message"></p>
</div>
Вот код запуска на успех/ошибка
$.ajax({
type:"post",
url:"register.php",
data:"name="+name+"&phone="+phone+"&email="+email+"&msg="+msg,
success:function(data){
if(data.status === 'success'){
//show the status msg
$('.message-head').text("Thank You");
$('.message').text("Your Request has been taken");
$(".status").removeClass("hidden").addClass('alert-success');
}else {
$('.message-head').text("Sorry");
$('.message').text("There is some Error. Please Try Again Later");
//alert(data.status);
$('.status').removeClass('hidden').addClass('alert-danger');
}}
А вот код для кнопки закрытия нажмите
$('.close').click(function(){
if ($('.status').hasClass("alert-danger")) {
$('.status').removeClass("alert-danger").addClass("hidden");
}else if ($('.status').hasClass("alert-success")) {
$('.status').removeClass("alert-success").addClass("hidden");
}
});
добавить точку останова (отладчик) для вашего закрытого клика. Проверьте, что находится в селекторе $ (". Status"), когда вы делаете это во второй раз. –
Вы используете бутстрап-предупреждение? Закрытие предупреждения ** удаляет элемент из dom **. Так что, наверное, это то, что здесь происходит. Возможно, попробуйте использовать функции bootstrap '$(). Alert()'. –
Mathieu - Я проверил инструмент разработчика. Что происходит, когда я нажимаю кнопку «закрыть», весь div исчезает. И, следовательно, нет возможности загрузить его во второй раз. – sisyphus