2015-10-08 29 views
0

我將新ID分配給按鈕。這是我的代碼如何在jquery中使用新設置的屬性ID

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

和我改變後的id。我想用它在jquery中再次起作用以恢復更新。有這個代碼。

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

我的問題是,它改變了id屬性,當我點擊取消什麼都沒有發生。我的代碼有什麼問題?先謝謝你。使用jQuery.on

回答

0

使用事件代表團作爲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 
    }  
}); 
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>