2012-02-14 42 views
0

這裏是我的工作,工作圍繞既有代碼的一個簡單的例子:JQuery的隱藏/顯示出了錯

基本上我有2周的div我想隱藏/在多個地方(1期,展2期,3期,等等),像這樣:

var blue_div = "#Blue"; 
var red_div = "#Red"; 
var blue_stage = "#Blue" + count; 
var red_stage = "#Red" + count; 

落井下石 div的頁面上的其他地方存在和被隱藏。需要將內容分成每個階段的另一個div。所以我使用.prepend()來獲取內容,像這樣:

var blue_html = $(blue_div).html(); 
var new_div = "#new_div"; 

$(new_div).prepend(blue_html); 
$(new_div).attr('id', blue_stage); //Changing the id based on the stage 

這最後一部分是真的什麼扔我 ...至於現在,我嘗試使用new_div沒有先結局腳本所以它尚未在DOM ...

if ($(blue_stage).is(':hidden')) { 
    $(blue_stage).show() 
    $("#cancel").bind("click",function(){ 
     $(blue_stage).hide() 
    } 
} 

我見過)與窗口的setTimeout(做了大量以及的setInterval .queue()。但我的嘗試都失敗了。希望我的例子沒有讓人困惑,任何幫助都是值得讚賞的!

回答

1

我認爲你可以做這樣的事情:

var $new_div = $('<div id="' + blue_stage + '"></div>'); 

,讓您直接編輯元素,所以你可以做這樣的事情:

$new_div.prepend(blue_html); 

改變你的ID:

$new_div.attr('id', blue_stage) 

並注意當你設置這樣的id時,你不需要「#」作爲其他答案的提及

1

請記住,選擇時使用散列標記#,但在節點上設置爲ID時,只需使用沒有此標記的標識符。所以這條線:

$(new_div).attr('id', blue_stage); //Changing the id based on the stage 

相當於此:

$(new_div).attr('id', '#Blue' + count); 

,但或許應該是這樣的:

$(new_div).attr('id', 'Blue' + count); 

(不hashmark)。

希望你的問題一樣容易解決!祝你好運!