【发布时间】:2017-12-23 09:38:26
【问题描述】:
我正在尝试通过动态更改按钮的 ID 来更改按钮的功能。
<srcipt>
$("#old-id").click(function func_P(){
//Some code
this.id = "new-id";
});
$("#new-id").click(function func_Q(){
// some other code
});
$("#clear").click(function func_R(){
$(".in").attr("id","new-id");
});
</script>
<body>
<button id="old-id" class="in">Button A</button>
<button id="clear">Clear</button>
</body>
但我面临的问题是,当我单击“按钮 A”时,id 会更改,但当我再次单击“按钮 A”时,func_P() 会再次执行,而我打算调用 func_Q。
【问题讨论】:
-
当您使用
.click()时,它会将事件分配给当时存在的元素。如果之后更改ID,则绑定事件时它不存在。所以你必须使用事件委托。
标签: javascript jquery