我正在建设一个灯箱作为一个学校项目,我不能使用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. 在一个setTimeout中创建raphael元素,在另一个setTimeout中删除它
- 4. 级联删除一个可以与自己相关的对象
- 5. 在新创建的视频元素中创建/删除元素
- 6. 如何删除元素,一旦它由jquery创建
- 7. 删除一个可排序的元素
- 8. 删除元素时,它有一个指定的子元素
- 9. 一个按钮可以通过函数删除自己吗? Javascript
- 10. 删除每个元素可以分隔数组中的另一个元素
- 11. 在javascript中创建第2个html元素删除第一个
- 12. 创建/删除的飞行元素
- 13. 创建一个If语句来删除数组中的元素
- 14. (JS)如何删除动态创建的最后一个元素?
- 15. 由它自己的子元素的一个替换的对象的元素
- 16. 创建一个类模板,可以把自己创建的类作为参数
- 17. Javascript删除一个元素
- 18. GMF - 建模一个类,它可以包含自己的一个组件
- 19. 使用React删除和重新创建一个元素
- 20. 元素出国它自己的背景
- 21. 创建jQuery后无法删除元素
- 22. jQuery创建后删除元素
- 23. 删除动态元素创建
- 24. 我可以为客户创建Facebook应用程序,然后删除自己吗?
- 25. 可以泡菜删除文件以及创建它们?
- 26. 创建和附加一个DOM元素与其它元素
- 27. 如何使一个UIButton删除自己
- 28. 用自己的哈希删除使用键的元素
- 29. 是否可以删除“检查元素”?
- 30. D3:可以创建元素的一个子集,但不会更新元素
是的,你不能。因此,在将它附加到身体后设置钩子。此外,您的问题会受益于您尝试过的某些代码和示例,以及出错的原因。 – Dave 2013-03-27 00:51:13
您可以发布您的当前HTML输出和脚本,请使用它来创建叠加层。也许我们可以添加一个'setTimeout',如果你想根据一定的时间自动删除它,如果可行的话,或者我们可以添加一个事件到父元素来删除它。尽管如此,它会使相关代码变得更容易。 – Nope 2013-03-27 01:07:14