我正在写一个小的webapp,我决定不使用任何框架。我会写只香草javascript。模式框无法正常工作
我遇到的问题是我希望能够用不同的键盘按键打开三种不同类型的模态窗口。例如,g将打开一个类型,d将打开另一个类型,并且m又是另一个类型。
我试图实现克一个,其中将包含一个标题和输入形式,且d之一,具有标题和两个按钮。这是我到目前为止的代码:
var width = 720;
var height = 350;
var modal = document.createElement('div');
modal.className = "modal";
modal.style.width = width;
modal.style.height = height;
modal.style.position = 'absolute';
modal.style.top = (window.innerHeight - parseInt(modal.style.height))/2 +'px';
modal.style.left = (window.innerWidth - parseInt(modal.style.width))/2 +'px';
var ngroup = modal;
var title = document.createElement('span');
title.innerHTML = "TYPE GROUP NAME"
var input = document.createElement('input');
input.type = "text";
ngroup.appendChild(title);
ngroup.appendChild(input);
var del = modal;
var dtitle = document.createElement('span');
dtitle.innerHTML = "DO YO WANT TO DELETE SELECTED COLOR(S)"
var dinput = document.createElement('input');
dinput.type = "button";
dinput.value = "yes";
var dinput1 = document.createElement('input');
dinput1.type = "button";
dinput1.value = "no";
del.appendChild(dtitle);
del.appendChild(dinput);
del.appendChild(dinput1);
function openModal(type) {
var body = document.getElementsByTagName('body')[0];
body.appendChild(type);
}
function closeModal() {
document.body.removeChild(modal);
}
,这是modal.js,其中包括在主要页面,并通过这家名为:
document.addEventListener('keydown', function(event) {
if(event.keyCode == 71) {
openModal(del);
}
else if(event.keyCode == 39) {
closeModal();
}
});
当我打克,它每个元素打开一个模式:两个标题,一个文本字段和两个按钮。为什么?我的Javascript有什么问题?我知道’ s仍然没有组织,但我想在做这件事之前先做事。
谢谢,你能解释一下为什么这种方法更好?即时通讯noob,我想学习! –
你是对的,我仍然可以用我的Javascript指定位置,以便垂直居中。很好的答案,但我仍然好奇我的脚本有什么问题! :) –
它会帮助你保持你的代码。当您使用JavaScript创建HTML时,将来需要更多努力进行更改。另外,HTML被解析而不是被解释。另外,HTML更精简,带宽更少,并且不需要客户端解释。最后,您不必担心事件发生的时间,您可以随时显示对话框,并且确信它会起作用。 – Samuel