更改超级链接的点击

Change the onclick of a hyper link

本文关键字:超级链接      更新时间:2023-09-26

我想更新超链接onClick的点击事件,并希望在jquery中更新超链接内部的html

<a class=" save" href="javascript:void(0);" onclick="save_unsave('unsave','UID','ID',this);">
    <div class="jopt_iconwrap" title="Unsave" alt="Unsave" >
        <span class="saved"></span>
    </div>
    Unsave
</a> 

现在点击save_unsave函数,我想更新html设计如下:

 <a class=" save" href="javascript:void(0);" onclick="save_unsave('save','UID','ID',this);">
        <div class="jopt_iconwrap" title="Save" alt="Save" >
            <span class=""></span>
        </div>
        Save
    </a> 

我正在尝试在函数中这样做:

jQuery

if(type == 'save')
    {
            var new_type = "'unsave'";
            jQuery(elem_obj).html("");
            jQuery(elem_obj).html('<a onclick="save_unsave('+new_type+','+uid+','+id+',this);" class="saved" href="javascript:void(0);"><div class="jopt_iconwrap" title="Unsave" alt="Unsave"><span class="saved"></span></div>Unsave</a>');
    }
    else if(type == 'unsave')
    {
        var new_type = "'save'";
        jQuery(elem_obj).html("");
        jQuery(elem_obj).html('<a onclick="save_unsave('+new_type+','+uid+','+id+',this);" class=" save" href="javascript:void(0);"><div class="jopt_iconwrap" title="Unsave" alt="Unsave"><span class="mico"></span></div>Save</a>');
    }

我们如何在jquery中做到这一点。请帮助我在我有元素对象在函数。

简单地说,我建议您使用replaceWith()代替.html(),它将为您正常工作。

$('a').click(function() {
  if ($(this).hasClass('save')) {
    $(this).removeClass('save').addClass('unsave');
    $(this).text('Unsave')
    $(this).attr('id','save')
  } else {
    $(this).removeClass('unsave').addClass('save');
    $(this).text('Save')
    $(this).attr('id','unsave')
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class=" save">
  <div class="jopt_iconwrap" title="Save" alt="Save">
    <span class=""></span>
  </div>
  Save
</a>

试试这个

您可以像这样替换onclick事件:

$('.save')[0].onclick = function() {
  save_unsave('save', 'UID', 'ID', this);
}