2013-01-11 100 views
0

我的文檔上有兩個輸入按鈕,它們包含在主div「容器」中。刷新DOM Jquery

我使用他們的代碼是:

<input id="anotherservices" type="button" value="Add Another Service"> 
<input id="addmultiterms" type="button" value="Go"> 

現在,當我點擊第一個按鈕,即與值「添加其他服務」的按鈕,我需要兩個以上按鈕消失out,然後執行ajax請求。然後這兩個按鈕再次被附加到主「容器」div。

這是遞歸的,這意味着當我再次點擊第一個已經新添加的按鈕時,新添加的按鈕應該淡出,並且另一組必須應用於文檔。

用於實現此的代碼IVE是如下:

$('#anotherservices').live("click",function(e) 
{ 
$(this).fadeOut(); 
$('#addmultiterms').fadeOut(); 

/* ajax request goes here */ 

$('#container').append('<input id="anotherservices" type="button" value="Add Another Service">'); 

$('#container').append('<input id="addmultiterms" type="button" value="Go">'); 

但是第二按鈕,具有值「轉到」未啓用淡出,因爲它沒有被添加到DOM在運行時。

我該如何做到這一點?

+0

淡出()做不會刪除元素,只會隱藏它們,因此您正在使用相同的ID創建多個元素。爲什麼不使用.append()將現有按鈕移動到容器的末尾,然後使用fadeIn()再次顯示它們? – nnnnnn

+0

已將fadeOut更改爲「刪除」。現在它起作用了。非常感謝 :) –

回答

1

​​不刪除元素作爲nnnnnn在評論中說。您可以使用fadeIn()方法再次顯示按鈕。並且可以使用

$("#addmultiterms").attr('value', 'Go'); 

第二個選項被刪除按鈕添加新鍵之前,您可以使用下面的代碼刪除的按鈕更改按鈕的值。

$("#addmultiterms").remove(); 
0

如果要動態地添加的元素,你必須使用

$(document).ready(function(){ 
    -- Your Function goes here 
}) 

爲什麼,因爲是第一次追加的淡出和其他東西的時候,它必須先創建,然後你可以按照其他邏輯一樣,刪除或類似的東西.. 通過你必須使用「刪除」明顯的方式....

希望這有助於......