removeclass()和addClass()无法使用ajax工作

时间:2015-11-03 11:38:56

标签: javascript jquery ajax

我在jquery中遇到addClass()removeClass()函数的问题。当我使用该函数时,它替换了类。但它没有调用addded类函数。这是我的查询

HTML代码:

<div class="animation1 popbutton">Click Me</div>

Jquery:

$(".animation1").click(function(){ 
   // my first function 
 });

$(".animation2").click(function(){ 
   // my second function 
 });

我的添加和删除类函数是

$.ajax({
    url : 'file.php',
    data : postdata,
    type : 'post',
    success : function (saveresponseText)
    {
        $(".animation1").removeClass("animation1").addClass("animation2").html("Clicked");
    } 
});

如果单击animation1,它将调用ajax函数,它将类名替换为animation2,并且它具有一些单独的函数。怎么办呢?有人建议找到解决方案。

先谢谢,

3 个答案:

答案 0 :(得分:3)

写作时

$(".animation1").click(function(){ 
   // my first function 
 });

jQuery使用此类查找元素并向其添加clickhandler。该函数未绑定到css类。

我建议你在你的ajax响应中添加一个clickhandler ,或者有两个你可以隐藏/显示的按钮

答案 1 :(得分:2)

尝试通过文档添加事件处理程序:

$(document).on('click','.animation2',function(){ 
   // my second function 
});

答案 2 :(得分:1)

问题是你的ajax没有返回成功检查控制台日志。实际上问题不在于addClass和removeClass。见下面的例子。

在此示例中,当您单击文本单击我时,它将调用ajax请求并且ajax将导致错误,以便错误地编写代码

&#13;
&#13;
$(document).ready(function() {
  $(".animation1").click(function() {
    // my first function 
    clk()
  });

  $(".animation2").click(function() {
    // my second function 
  });

  function clk() {
    $.ajax({
      url: 'file.php',
      type: 'post',
      success: function(saveresponseText) {},
      error: function(status) {  $(".animation1").removeClass("animation1").addClass("animation2").html("Clicked");
      }
    });
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="animation1 popbutton">Click Me</div>
&#13;
&#13;
&#13;