当前位置: 首页 > 知识库问答 >
问题:

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

洪弘壮
2023-03-14

我有一个表格来注册用户的一些信息。提交时,会发出一个ajax调用,将数据插入数据库,并返回一个状态代码。根据状态,我显示一个div。该div有一个初始类“hidden”和一个close按钮。从php返回后,我删除了“hidden”类并添加了“alert danger”或“alert success”类。

一旦用户单击close(x)按钮,我将再次添加“hidden”类,并检查元素是否具有“alert danger”或“alert success”类,并将其删除。这是第一次起作用(或至少是隐藏起来)。然而,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");
}
});

共有2个答案

申屠裕
2023-03-14

我不完全确定,但我相信,当您使用Bootstrap JS函数打开引导警报时,关闭引导警报应该是现成的。

这应该适用于开放:

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

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

编辑:另一种方法是用javascript创建警报。这将是两个问题的解决方案。

汤枫涟
2023-03-14

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

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

你是否包括类。

.hidden{
    display: none;
}

我很难复制这个问题,否则呢?

 类似资料:
  • 问题内容: 我正在尝试添加和删除被单击的li元素上的类。这是一个菜单,当我单击每个li项目时,我希望它获得该课程,而所有其他li项目都将其删除。因此,一次只有一个li项目上课。这就是我走了多远(见小提琴)。我不确定如何使“ about-link”从当前类开始,但是当单击其他li项之一时将其删除吗? 问题答案: 为什么不尝试这样的事情?

  • 问题内容: 因此,基本上,我想在用户向下滚动并添加另一个类以更改外观后从“标题”中删除该类。 试图找出最简单的方法,但我无法使其正常工作。 CSS HTML 我确定我在做一些非常基本的错误。 问题答案: $(window).scroll(function() { var scroll = $(window).scrollTop(); 另外,通过删除该类,可以从元素中删除,并可以通过选择器重新选择它

  • 问题内容: 由于IE9和Safari-5不支持,因此有什么替代的跨浏览器解决方案? 解决方案 必须 至少在 IE 9 , Safari 5 ,FireFox 4,Opera 11.5和Chrome中运行。 问题答案: 处理没有框架/库的类的一种方法是使用Element.className属性,该属性“ _获取并设置指定元素的class属性的值。 正如在他的回答中已经提到的那样,一旦获得了元素的类字

  • 我有一个导航菜单,显示一组来自单击主题的注释。便笺可以是类(如果它是可见的),也可以是类(如果它是隐藏的)。我只想从点击的主题中显示注释。 问题是,其他主题的一些注释也在展示。即使的长度始终为2。 我是JavaScript新手,所以可能我的循环中有错误?提前致谢:) null null

  • 我有这样的标记 和像这样的JS 所以在这里,我希望当我点击课程时,只有课程内容会显示出来,就像这样,当我点击配置文件和库时,只有配置文件和库会显示出来。在这里,它的工作很好,但我想知道如何添加一个类活动时,一个项目被点击在锚标记。假设我点击了lessons,那么一个活动类应该被添加到lessons锚标记中,当我点击了profile,那么活动类应该被从lessons锚标记中移除,它应该在profil

  • 问题内容: 有没有更好的办法重写: 我无法使用, 因为它会删除所有我不想要的类。 问题答案: 从,类参数: 要从元素中删除的一个或多个CSS类,这些类之间用空格隔开。