如何在jquery中使用新设置的属性id

时间:2015-10-08 11:16:32

标签: javascript jquery html

我将新ID分配给按钮。这是我的代码

$("#update").click(function(){
    $("#update").attr('id', 'cancel');
});

和我改变身份证后。我想在jquery中再次使用它来恢复它。有这个代码。

$("#cancel").click(function(){
    $("#cancel").attr('id', 'update');
});

我的问题是,在我点击取消后更改了id属性没有任何反应。我的代码有什么问题。提前谢谢你。

2 个答案:

答案 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>