JQuery添加/删除类不工作的第二次

我有一个表单向用户注册一些信息。 提交后,会进行ajax调用,将数据插入到数据库中,并返回状态码。 根据状态,我显示一个div。 该div有一个“隐藏”的初始类和一个关闭按钮。 从PHP返回后,我删除“隐藏”类并添加“警告 - 危险”或“警告 - 成功”类。

一旦用户点击close(x)按钮,我再次添加“hidden”类,并检查元素是否具有“alert-danger”或“alert-success”类并将其删除。 这是第一次(或至少隐藏)。 但是,div并不是第二次出现。

我在这里失踪的是什么?

这是div

<div class="alert alert-block fade in status hidden">
 <button type="button" class="close" data-dismiss="alert">&times;</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");
}
});

我为你准备了一个简单的小提琴

链接:http://jsfiddle.net/qyyegwhu/1/

你是否包括课程:在css中隐藏:

.hidden{
    display: none;
}

否则,我无法复制该问题?


我并不完全确定,但我相信,使用引导JS函数打开它们时,关闭Bootstrap警报应该可以开箱即用。

这应该适用于开放:

$('.message-head').text("Thank You");
$('.message').text("Your Request has been taken");
$('.alert').alert();

不需要关闭警报的代码,因为警报会自动关闭,如引导示例http://getbootstrap.com/javascript/#alerts

编辑:另一种方法是用JavaScript创建警报。 这将是你的两个问题的解决方案。 (见JSFiddle)

链接地址: http://www.djcxy.com/p/69731.html

上一篇: JQuery add/remove class not working the second time

下一篇: how to make widget in Yii