これは非常に基本的なデモンストレーションです。ダイアログを表す黄色div
が画面に表示されます。のどこかをクリックすると、div
表示されたままになり、div
必要に応じて HTML とイベント ハンドラーを追加できます。の外側をクリックするdiv
と、div
が非表示になります。注: イベント ハンドラーをクリーンアップするつもりはありません。
cirrusによる回答を参照してください。ここでは、イベントの伝播と、ソリューションでそれが必要な理由について実際に説明していますが、ここでは行っていません。彼はまた、バニラ javascript とjqueryを使用したソリューションも提供しますが、私はそうではありません。彼はまた、私が持っていないJavaScript モジュール パターンを示しています。彼の建設的な批判と授業料がなければ、この回答を提供することはできなかっただろう. 幸運を。
CSS
.box {
width:300px;
height:100px;
position: absolute;
top: 30%;
left: 30%;
background-color:yellow;
border:2px solid;
}
#message {
position: absolute;
right: 50%;
bottom: 50%;
}
#button1 {
position: absolute;
right: 0;
bottom: 0;
}
#button2 {
position: absolute;
right: 4em;
bottom: 0;
}
HTML
<div id="box" class="box">
<div id="message"></div>
<button id="button1">
<img src="http://img856.imageshack.us/img856/3817/ticklf.png" alt />Ok</button>
<button id="button2">
<img src="http://img822.imageshack.us/img822/1917/crossn.png" alt />Cancel</button>
</div>
JavaScript
function dontBubble(evt) {
evt.stopPropagation();
}
function hideBox(evt) {
box.hidden = true;
}
function messgage() {
document.getElementById("message").textContent = "I'm ignoring you";
}
document.getElementById("box").addEventListener("click", dontBubble, false);
document.getElementById("button1").addEventListener("click", messgage, false);
document.getElementById("button2").addEventListener("click", hideBox, false)
document.addEventListener("click", hideBox, false)
;
jsfiddleについて