私は小さな webapp を作成していますが、フレームワークを使用しないことにしました。バニラ JavaScript のみを記述します。
私が抱えている問題は、異なるキーボード キーで 3 つの異なる種類のモーダル ウィンドウを開くことができるようにしたいということです。たとえば、gあるタイプdを開き、別のタイプを開き、さらに別のタイプを開きmます。
gタイトルと入力フォームを含むdものと、タイトルと 2 つのボタンを含むものを実装しようとしました。これまでの私のコードは次のとおりです。
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();
}
});
をg押すと、すべての要素 (2 つのタイトル、1 つのテキスト フィールド、2 つのボタン) を含むモーダルが開きます。なんで?私のJavascriptの問題は何ですか? まだ整理されていないことはわかっていますが、それに入る前にうまく機能させたいと思っています。