本帖最后由 chrislee1981 于 2013-05-29 12:16:10 编辑

解决方案 »

  1.   

    为啥不用toggle()来切换样式和弹出框
      

  2.   


    jQuery(function($){
    $('a').toggle(function(){
    alert('a');
    $(this).removeClass('b').addClass('a');
    },function(){
    alert('b');
    $(this).removeClass('a').addClass('b');
    });

    });
    楼主有一点要搞清,如果你要侦听样式定义变化,你的写法是错误的
      

  3.   

    ---------------------------------------------------------------------------
    谢谢指点。我想说的是在JQUERY之前的版本中,如果用live方法是正常的,但1.9后,live方法不能使用,我想知道的是怎么用on方法达到相同的效果, 也就是绑定click事件后与ajax结合通过后台获取状态通过点击动态改变样式
      

  4.   

    样式最好先定义出来,只要把新的样式定义名称赋值给元素,就可以看到效果了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="http://img.renzhe.com/static/js/jquery-1.8.3.min.js"></script>
    <title>无标题文档</title>
    <style type="text/css">
    a{text-decoration:none;color:#f00}
    .b{color:#000}
    </style>
    </head><body>
    <a href="javascript:;" >this is anchor</a>
    <script type="text/javascript">
    jQuery(function($){
    $('a').click(function(){
    $(this).toggleClass('b');
    });
    });
    </script>
    </body>
    </html>
      

  5.   

    var ttj = 1;
    $(function(){
       $(".c").click(function(){
       if(ttj == 1){
     $(this).addClass("a");
     $(this).removeClass("b");
      ttj=0;
       }else{
        $(this).addClass("b");
      $(this).removeClass("a");
     ttj=1;
       }
       });
    });
    我会先给一个无样式类c,然后添加a样式删除b样式,或者。
      

  6.   

    多谢楼上各位,我的本意是在一个元素上通过click事件改变class,让该元素的式样来回切换,在老版的JQUERY中用LIVE方法是最简单可以的,但在1.9版中删除了LIVE,所以想知道如何用ON方法达到相同的效果。
      

  7.   

    ---------------------------------------------------------------------------
    谢谢指点。我想说的是在JQUERY之前的版本中,如果用live方法是正常的,但1.9后,live方法不能使用,我想知道的是怎么用on方法达到相同的效果, 也就是绑定click事件后与ajax结合通过后台获取状态通过点击动态改变样式1.9没有live了,用delegate吧。
    $('body').delegate('.a','click',function(){
      alert('a');
      $('.a').removeClass('a').addClass('b');
    });
    $('body').delegate('.b','click',function() {
      alert('b');
      $('.b').removeClass('b').addClass('a');
    });
      

  8.   

    $('body').on("click",".a",function(e){
          $(e.currentTarget).removeClass("a").addClass("b")
    });$('body').on("click",".b",function(e){
          $(e.currentTarget).removeClass("b").addClass("a")
    });