我将新ID分配给按钮。这是我的代码
$("#update").click(function(){
$("#update").attr('id', 'cancel');
});
和我改变身份证后。我想在jquery中再次使用它来恢复它。有这个代码。
$("#cancel").click(function(){
$("#cancel").attr('id', 'update');
});
我的问题是,在我点击取消后更改了id属性没有任何反应。我的代码有什么问题。提前谢谢你。
答案 0 :(得分:0)
使用jQuery.on使用事件委托,它会在id被更改时自动绑定click事件。如果不能使用静态父级,则需要使用静态父级来委派可以使用文档的事件。
$("#staticParentId").on("click", "#update", function(){
$("#update).attr('id', 'cancel');
});
$("#staticParentId").on("click", "#cancel", function(){
$("#cancel").attr('id', 'update');
});
除了上述解决方案,我没有看到任何改变html元素id的真正原因。您可以切换html元素的行为使用相同的单击处理程序。
<强> Live Demo 强>
$("#update").click(function(){
if(this.value == "update")
{
this.value = "cancel";
//more action
}
else
{
this.value = "update";
//more action
}
});
答案 1 :(得分:0)
您需要了解事件
delegation
在您的代码中,当DOM中不存在元素时,您就是绑定事件。
试试这个:
var BODY = $('body');//any parent selector
BODY.on('click', "#update", function() {
$("#update").attr('id', 'cancel');
});
BODY.on('click', "#cancel", function() {
$("#cancel").attr('id', 'update');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>