jQuery.attr第二次不会更改



这不起作用。。它将id更改为触发器,但当我再次单击时,什么也没发生。。

我的html

<a id="love"><i class="favorite love material-icons medium ">favorite</i></a>

$("#love").click(function() {

$("#love").attr("id", "trigger");

});
$("#trigger").unbind("click").click(function() {
$("#trigger").attr("id", "love");
});

希望有人能帮我:3

不知道你想在这里实现什么。您将点击事件绑定到#love,当点击时,应该会将该元素的id更改为其他内容,只有这样您才会有一个具有该id的元素。

您的代码运行第一个绑定,然后尝试运行第二个绑定,但这不起作用,因为#trigger还不存在。

做你想做的事情的最好方法是:

function bindLove() {
$("#love").off("click").click(function() {
$("#love").attr("id", "trigger");
bindTrigger();
});
}
function bindTrigger() {
$("#trigger").off("click").click(function() {
$("#trigger").attr("id", "love");
bindLove();
});
}
bindLove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="love">
Change ID
</button>

但这真的很奇怪。

最新更新