如何将链接值从“选择”更改为“选择”?

时间:2015-03-19 02:42:56

标签: javascript jquery hyperlink

以下是我的意见:

<a id="choose" alt="554">Choose</a>

单击“选择”链接后如何获取输出变为“选择”,然后再次单击后再返回“选择”?

我的预期输出:

<a id="choose" alt="554">Choosen</a>

这是我的Ajax:

   $(function(){
   
     $('#choose').live('click',function(){
            var $this = $(this);
            var chapter_id = $this.attr('alt');

            if($this.hasClass('edu_level_active')){
                del_chapter(chapter_id,$this);
            }else{
                if($this.hasClass('disabled')){
                    return false;
                }else{
                    ins_chapter(chapter_id,$this);
                }
            }

        });
   
   }); 

  function ins_chapter(chapter_id,$this)
    {
        $.ajax({
            type      : 'post',
            url       : '/dashboard/choose/',
            data      : 'chapter_id:'+chapter_id,
            beforeSend: function(){
                $this.addClass('edu_level_active');
            },error   : function(){
                alert('error');
            }
        });

        return false;
    }

3 个答案:

答案 0 :(得分:1)

您可以定义一个表示单击或取消单击的布尔变量。

&#13;
&#13;
var retVal = false
$('#choose').on('click', function(){
 if (!retVal){
  retVal = true;
     $(this).text('Choosen');
 }
 else {
 retVal = false;
       $(this).text('Choose');
 }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="choose" alt="554">Choose</a>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。试试这个:。

$('#choose').on('click',function(){
        var $this = $(this);
        var chapter_id = $this.attr('alt');
        var a_text = $this.text().trim();

        if(a_text=="Choose"){
           $this.text('Choosen');
        }
        else{
           $this.text('Choose');
        }


        if($this.hasClass('edu_level_active')){
            del_chapter(chapter_id,$this);
        }else{
            if($this.hasClass('disabled')){
                return false;
            }else{
                ins_chapter(chapter_id,$this);
            }
        }

    });

答案 2 :(得分:0)

这很简单,只需测试文本的当前值并相应地更改它:

$('#choose').live('click',function(){
    var $this = $(this);
    var chapter_id = $this.attr('alt');
    var chapter_text = $this.text().trim();

    if (chapter_text === 'Chosen') {
        $this.text('Choose');
    } else if (chapter_text === 'Choose') {
        $this.text('Chosen');
    }

    if ($this.hasClass('edu_level_active')) {
        del_chapter(chapter_id,$this);
    } else{
        if ($this.hasClass('disabled')) {
            return false;
        } else{
            ins_chapter(chapter_id,$this);
        }
    }
});