以下是我的意见:
<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;
}
答案 0 :(得分:1)
您可以定义一个表示单击或取消单击的布尔变量。
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;
答案 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);
}
}
});