2013-03-24 14 views
0

我有我的網頁上的按鈕,它調用一個jQuery函數執行下面的功能:上當前不存在的ID

$('[id^=edit]').one('click',function(){ 
    id = $(this).attr('id') 
    changedId = id.replace('edit', '') // cut off the word 'edit' 
    oldValue = $('#' + changedId).text() 
    $('#' + changedId).html("<input class='myInput' type='text' value='" + oldValue +"'/>"); 
    $(this).addClass('success'); 
    $(this).attr('id', changedId+'Button'); 
    $(this).text("save it") 
}); 

基本上,這個點擊創建一個段落中的輸入元素,然後將另一類按鈕,然後更改它的ID。

我想編寫第二個函數,當點擊帶有新ID的按鈕時將執行第二個函數。例如:

$('[id$=Button]').click(function(){ 
    alert("it works"); 

}); 

是這樣的可能嗎?該新功能會觸發一些AJAX調用到我的Django應用程序,但這是無關緊要的。

回答

0

如果你希望你的事件將被委派給一個尚未存在的元素,使用on

$(document.body).on('click', '[id$=Button]', function(){ 
+0

@JustinEthier您的意思是您的評論作爲解釋? – 2013-03-24 13:54:21

+0

您的回答有點不妥。唯一的問題是第二個函數立即執行,例如。它不會等待我的點擊。第一個功能執行,並立即彈出警報。 – ivica 2013-03-24 14:04:47

+0

Oooook,我有點想出來(在朋友的幫助下)。我的問題的解決方案是不改變當前點擊的按鈕的ID,但添加另一個。 然後dystroy的答案有用,我很感謝。 – ivica 2013-03-24 14:13:17

-1

你可以使用jQuery:

$('#' + changedId + 'Button').live('click', function(event) { 
    alert('it works'); 
}); 
+2

live已被棄用,現在已被刪除。 – 2013-03-24 13:59:45

相關問題