[英]How do I add onclick to a line of text so that it calls a popup box only when clicked and not on page load?
多虧了另一個用戶的幫助,我才能自定義一個看起來不錯的彈出窗口,但是我無法完全使onclick正常工作,因此直到單擊電話號碼后才顯示彈出窗口。 我想單獨顯示電話號碼,單擊后會出現一個彈出窗口,詢問用戶“呼叫還是短信?”,然后用戶單擊他們選擇的按鈕。 謝謝!
var modal = document.getElementById('textCall');
var span = document.getElementById("close");
modal.style.display = "block";
span.onclick = function(){
modal.style.display = "none";
}
CSS
.dialogue {
display: none;
position: fixed;
z-index: 1;
padding-top: 150px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.4);
}
#close, #closed {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
#close:hover,
#close:focus,
#closed:focus,
#closed:hover {
color: #000000;
text-decoration: none;
cursor: pointer;
}
.modal-content {
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 40%;
}
#textCall {
display: block;
}
HTML
<p onclick="textCall">555-5555</p>
<div id="textCall" class="dialogue">
<div class="modal-content">
<span id="close">×</span>
<h2>Call or Text?</h2>
<a href="tel:15555555555">Call</a>
<a href="sms:15555555555">Text</a>
</div>
</div>
</div>
該功能是您要尋找的:
function textCall(e) {
modal.style.display = "block";
}
檢查代碼段:
var modal = document.getElementById('textCall');
var span = document.getElementById("close");
var number = document.getElementById("number");
number.onclick = function() {
modal.style.display = "block";
};
span.onclick = function() {
modal.style.display = "none";
};
var modal = document.getElementById('textCall'); var span = document.getElementById("close"); span.onclick = function() { modal.style.display = "none"; }; function textCall(e) { modal.style.display = "block"; }
.dialogue { display: none; position: fixed; z-index: 1; padding-top: 150px; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4); } #number { cursor: pointer; } #close, #closed { color: #aaaaaa; float: right; font-size: 28px; font-weight: bold; } #close:hover, #close:focus, #closed:focus, #closed:hover { color: #000000; text-decoration: none; cursor: pointer; } .modal-content { background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; width: 40%; }
<p id="number" onclick="textCall()">555-5555</p> <div id="textCall" class="dialogue"> <div class="modal-content"> <span id="close">×</span> <h2>Call or Text?</h2> <a href="tel:15555555555">Call</a> <a href="sms:15555555555">Text</a> </div> </div>
為此,您需要首先將display:'none'
為模態。 您可以為元素創建onclick
函數,並像這樣show
或hide
模態。
DEMO
function closeModal(e) { document.getElementById('textCall').style.display = "none"; } function textCall(e) { document.getElementById('textCall').style.display = "block"; }
.dialogue { display: none; position: fixed; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.4); } .number { cursor: pointer; } #close, #closed { color: #aaaaaa; float: right; font-size: 28px; font-weight: bold; } #close:hover, #close:focus, #closed:focus, #closed:hover { color: #000000; text-decoration: none; cursor: pointer; } .modal-content { background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; width: 40%; position: fixed; top: 25%; left: 25% }
<p class="number" onclick="textCall(this)">555-5555</p> <div id="textCall" class="dialogue"> <div class="modal-content"> <span onclick="closeModal(this)" id="close">×</span> <h2>Call or Text?</h2> <a href="tel:15555555555">Call</a> <a href="sms:15555555555">Text</a> </div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.