更改的id属性在AJAX中不起作用

时间:2017-01-14 05:21:34

标签: jquery ajax

我在ajax成功调用中使用下面的代码片段更改了锚标记ID。

<a id="followUser" data-userid="96" href="#" title="Follow"><i class="fa fa-user-plus" aria-hidden="true"></i></a>

我已经检查过html也改变如下。

$("#followingUser").click(function(e){

但是,当我再次点击此按钮时,它正在调用此功能

$("#followUser").click(function(e){

但它应该调用此函数,因为id现在已更改

ConcurrentHashMap

2 个答案:

答案 0 :(得分:0)

事件被绑定到元素,而不是它们的id。 click事件已经绑定到该元素,虽然之后名称发生了变化 - 这就是为什么$("#followingUser").click(function(e){中的代码仍然有效的原因。查看下面的代码段。如果您希望在更改元素的ID时删除已绑定的click事件,则可以使用$.off取消绑定事件

$(document).ready(function(){

$("#followingUser").click(function(e){
 alert("old button id");
});

$(document).on("click","#followUser", function (){ 
 alert("new button id");
}); 

$("#followingUser").off("click");
$("#followingUser").attr('id','followUser');

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="followingUser" type="button" value="test">

答案 1 :(得分:0)

使用.on.off解除您使用该元素进行的先前绑定:

$(document).off('click', '#followingUser').on('click', '#followUser', function(){alert("Voilah followUser!")});

$(document).off('click', '#followUser').on('click', '#followingUser', function(){alert("Voilah followingUser!")});