我正在建设一个灯箱作为一个学校项目,我不能使用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