jQuery如何替换a href的类名,并单击该sametime来运行该函数

jQuery如何替换a href的类名,并单击该sametime来运行该函数,jquery,click,classname,Jquery,Click,Classname,我有一个href链接如下 <a href="#" class="add_encounter">Add</a> $('.add_encounter').click(function(event) { add_encounter(encounters); event.preventDefault(); }); function save() { var encounter = $('#name').val(); var key = $

我有一个href链接如下

<a href="#" class="add_encounter">Add</a>
$('.add_encounter').click(function(event) {
    add_encounter(encounters); 
    event.preventDefault();
});
  function save() {
    var encounter = $('#name').val();
    var key = $('#encounterKey').val();
    if (key == '') {
      key = null
    }
   if (encounter == ''){
 cancel_encounter() 
   }
}
function cancel_encounter() {     
        $('.encounterSubmitter').removeClass().addClass("add_encounter")
        $('.add_encounter').text("Add")         
}
在add_conference函数中,我将ahref的类名从add_conference更改为conference conference submitter,并希望单击该类名来运行其他函数,但当我单击 link它运行函数并将类名更改为encounterSubmitter,然后更改回同一个类,即add_enounter

function add_encounter(encounters) {
     if ($('.add_encounter').text() == "Add"){        
        $('.add_encounter').removeClass().addClass("encounterSubmitter")
     } 
    $('.encounterSubmitter').click(function(event) {save(); event.preventDefault();}); 
}
保存功能如下所示

<a href="#" class="add_encounter">Add</a>
$('.add_encounter').click(function(event) {
    add_encounter(encounters); 
    event.preventDefault();
});
  function save() {
    var encounter = $('#name').val();
    var key = $('#encounterKey').val();
    if (key == '') {
      key = null
    }
   if (encounter == ''){
 cancel_encounter() 
   }
}
function cancel_encounter() {     
        $('.encounterSubmitter').removeClass().addClass("add_encounter")
        $('.add_encounter').text("Add")         
}
取消你的遭遇如下

<a href="#" class="add_encounter">Add</a>
$('.add_encounter').click(function(event) {
    add_encounter(encounters); 
    event.preventDefault();
});
  function save() {
    var encounter = $('#name').val();
    var key = $('#encounterKey').val();
    if (key == '') {
      key = null
    }
   if (encounter == ''){
 cancel_encounter() 
   }
}
function cancel_encounter() {     
        $('.encounterSubmitter').removeClass().addClass("add_encounter")
        $('.add_encounter').text("Add")         
}
因此,它转到保存函数检查if条件,并转到取消函数 并将类名更改回添加


我知道这个问题有点让人困惑,但我希望无论我如何理解它或遇到过这种问题都能给我解决方法。

无法正确测试这一点,但这可能会奏效:

    $('.add_encounter').click(function(event) {
        add_encounter(encounters); 
        event.preventDefault();
    });

    function add_encounter(encounters) {
         if ($('.add_encounter').text() == "Add"){        
            $('.add_encounter').removeClass().addClass("encounterSubmitter")
         } 
    }

    $('.encounterSubmitter').live('click',function(event){
        save();
        event.preventDefault();
    });

    function save() {
        var encounter = $('#name').val();
        var key = $('#encounterKey').val();
        if (key == '') {
            key = null
        }
        if (encounter == ''){
            cancel_encounter() 
       }
    }

    function cancel_encounter() {     
        $('.encounterSubmitter').removeClass().addClass("add_encounter")
        $('.add_encounter').text("Add")         
    }
问题是add_函数正在调用save函数。因此,他会检查你的钥匙,然后调用取消遭遇功能重置链接

即使要绑定的元素在加载javascript后加载,live调用也会工作。

HTML

<a href="#" class="add my_encounter">Add</a>

我使用了您的技术,但这里的问题是,如果遇到的不是下面的空$('.my_Conference').bind('click',function(event){if($(this).hasClass('add')){$(“#EncounterList”).slideUp(“slow”).hide();$(“.encounterForm”).show(“slow”);$('encounterbutton').text(“Cancel”)$(此).text(“保存”)$('#上半部分页眉”).text(“添加遭遇”)$(此).removeClass('Add').addClass(“提交者”)}如果($(此).hasClass('submitter')){var-conference=$('#name').val(),key=$('#conferencey').val();如果(键==''){key=null}如果(遭遇=='')类{(此.removeClass('submitter').addClass('addClass)('addClass=).text=).text+)}否则{conferences.Save;}(key,conference);}}event.preventDefault();});因此在这种情况下,如果$(.my_计数器)第二次单击,它会保存两次遭遇。