2012-03-28 51 views
0

添加元素使用這樣的頁面後,如何向DOM添加元素,然後在Javascript/JQuery中引用那些添加的元素?

$('#blah').append('<div id="bugsbunny"></div>'); 

我怎麼可以使用JavaScript/jQuery的與添加的元素? DOM樹必須重建嗎?我想要做這樣的事情:

$('#bugsbunny').hide(); 

我怎樣才能得到這個工作?邏輯錯誤還是有另一種方法來做到這一點?

我已經考慮過使用.on或.live,但這些方法需要諸如「點擊」之類的事件。我的代碼看起來是這樣的:

$(document).ready(function(){ 
bamboo.addEventListener("load", dothisaction, false); 
}); 

function thisHappensAtAnotherTime() { 
$('#blah').append('<div id="bugsbunny"></div>'); 
} 

function dothisaction(evt) { 
    $('#bugsbunny').hide(); 
} 

然而,#bugsbunny不會消失,因爲加載頁面後,它被追加。我能做什麼?

在此先感謝!

編輯:我更新了我的代碼的樣子。

+1

你把你的代碼包裝在$(document).ready()中嗎?如果否,你的代碼工作,只是沒有#blah元素 – 2012-03-28 07:07:20

+1

你可以使用DOM插入和DOM刪除事件... 每當你在DOM中添加東西時,這個事件將被解僱..你可以採取適當的行動功能.. 這是相同的問題和答案:http://stackoverflow.com/questions/9699597/good-approch-for-see-if-something-is-removed-from-the-dom-with-contenteditable – 2012-03-28 07:11:44

回答

1
$(function(){ 
    var rabbit; 

    function thisHappensAtAnotherTime() { 
     rabbit = $('<div id="bugsbunny" />'); 
     $('#elmer').append(rabbit); 

     //no sure but i think you can do it like: 
     rabbit = $('<div id="bugsbunny" />').appendTo('#elmer'); 
    } 

    function dothisaction(evt) { 
     rabbit.hide(); 
    } 
}); 
+0

如果在另一個函數裏定義了兔子,我該怎麼做?查看我在問題中更新的代碼。謝謝! – tundoopani 2012-03-28 07:48:27

+0

更新了我的答案。只要把'rabbit'變量放到兩個都可以看到的範圍內即可。 – Joseph 2012-03-28 07:51:53

+0

謝謝。這似乎工作,但我怎麼能在兔子上使用.css()? 'rabbit.css('width',thisvariablevalue)'似乎沒有工作。我是否錯誤地處理了這個問題?謝謝 – tundoopani 2012-03-28 20:12:10