我正在建設一個燈箱作爲一個學校項目,我不能使用jQuery。我有一張圖片。當你點擊它時,Javascript會創建一個ID爲「overlay」的透明div。我想要div自己刪除,或者父母刪除它,但它不起作用。我認爲這與你不能將'onclick'鏈接到尚不存在的元素的事實有關。創建一個可以自己刪除它的元素?
7
A
回答
19
您必須從父項中移除元素。事情是這樣的:
d = document.getElementById('overlay');
d.parentNode.removeChild(d);
或者你可以只隱藏:
d.style.display = 'none';
而且,哦:您可以通過給onclick屬性分配函數添加Javascript代碼到(新建)元素。
d = document.createElement('div');
d.onclick = function(e) { this.parentNode.removeChild(this) };
1
不要在標籤中使用onclick
處理函數,請使用Javascripts事件函數(如addEventListener
)將事件動態添加到元素中。您還應該確保在刪除元素時,您可以清理所有引用(換句話說,取消註冊事件處理程序)。
+0
Downvote介意闡述? – 2013-03-27 01:44:24
0
我知道了:) 我做它像巴特悲傷,但沒有奏效。我的代碼看起來是這樣的:
image.onclick = function(){ *create overlay*};
overlay.oncklick = function() {*overlay.parentNode.removeChild(overlay)*};
瀏覽器就像wtf?導致它讀取代碼並認爲「我無法檢查用戶是否單擊了一個不存在的元素。」 所以我這樣做:
image.onclick = function(){
*create overlay*
overlay.onclick = function() {*remove overlay*};
};
+0
thnx大家! – Sam 2013-03-27 11:10:40
相關問題
- 1. 在新創建的視頻元素中創建/刪除元素
- 2. 級聯刪除一個可以與自己相關的對象
- 3. 刪除一個可排序的元素
- 4. 刪除元素時,它有一個指定的子元素
- 5. 一個按鈕可以通過函數刪除自己嗎? Javascript
- 6. 創建一個If語句來刪除數組中的元素
- 7. 由它自己的子元素的一個替換的對象的元素
- 8. 創建一個類模板,可以把自己創建的類作爲參數
- 9. 刪除動態元素創建
- 10. jQuery創建後刪除元素
- 11. 創建和附加一個DOM元素與其它元素
- 12. 如何使一個UIButton刪除自己
- 13. 是否可以刪除「檢查元素」?
- 14. D3:可以創建元素的一個子集,但不會更新元素
- 15. 當刪除最後一個元素,jquery刪除第一個元素
- 16. 類創建它自己的一個實例
- 17. 如何刪除文件的內容而不刪除它自己?
- 18. 想有一個畫面在我創建了(也可以刪除)
- 19. 一個類的實例可以用JavaScript代替它自己嗎?
- 20. IE7無法根據它的href屬性刪除一個元素
- 21. 刪除元素,如果它有一個特定的屬性
- 22. 刪除一個元素佔據的空間而不隱藏它
- 23. 刪除一組從一個數組元素的創建使用C++
- 24. Flex:刪除可視元素
- 25. 在自動創建的多個元素上刪除事件偵聽器
- 26. 的multi_index_container刪除最後一個元素
- 27. jQuery:在另一個創建的元素內創建一個元素
- 28. 刪除3元素元組的第一個元素
- 29. Java不刪除自己創建的文件
- 30. Orbeon:創建我自己的刪除按鈕
是的,你不能。因此,在將它附加到身體後設置鉤子。此外,您的問題會受益於您嘗試過的某些代碼和示例,以及出錯的原因。 – Dave 2013-03-27 00:51:13
您可以發佈您的當前HTML輸出和腳本,請使用它來創建疊加層。也許我們可以添加一個'setTimeout',如果你想根據一定的時間自動刪除它,如果可行的話,或者我們可以添加一個事件到父元素來刪除它。儘管如此,它會使相關代碼變得更容易。 – Nope 2013-03-27 01:07:14