我正在开发一个实现了非常时髦的模式框的网站,现在它已经超出了实现新内容的范围,因此我正在努力尝试使用当前存在的内容。它的工作方式是每次创建一个新的模态窗口时,都会为它分配一个唯一的ID ..例如
<div id="window_1308937649703" class="dialog">
要关闭窗口,关闭按钮有一个onclick,如:
onclick='Windows.close("window_1308937649703", event)'
我试图从另一个点击事件中摧毁窗口,但我不确定实现此目的的最佳方法是什么。我想我可以使用对话框类来提取相关的唯一#window_ id。是否还有一些javascript我可以使用getElementsByClassName('dialog')并从DOM中完全删除它?如果有任何帮助,我也可以使用Prototype库。我无法理解实际的模态脚本,所以我希望有一些解决方案。
答案 0 :(得分:0)
要从dom使用中完全删除对话框:
function removeNodeByID ( nodeId){
var node = document.getElementById( nodeId );
node.parentElement.removeChild(node);
};
与
onclick="removeNodeById('window_1308937649703')"
这样你只需要你提到的可以在问题中找到的对话框的ID。
答案 1 :(得分:0)
你可以在原始JavaScript中使用getElementsByClassName()
并不多了(除了滚动你自己的),尽管Prototype对此有一些好的functionality。
另一种可能的方法:关闭按钮是否具有通用ID?如果是这样,如果你能够添加插件(抱歉,我从未使用过Prototype),你可以查看这个thread以了解如何触发关闭按钮上的click事件。我选择了它。
答案 2 :(得分:0)
如果你有原型,你可以简单地使用:
$$('.dialog').first().remove();
另外,如果您使用的是原型,则应该避免使用onClick,而是使用事件观察器:
<button id="dialogremover">Remove</button>
<script type="text/javascript">
$('dialogremover').observe('click', function(ev) {
ev.stop();
$$('.dialog').first().remove();
});
</script>
这有两个好处: