我正在開始一個項目,我想象需要大量的對話框/模式。如何根據按下哪個按鈕來調出不同的對話框
我想出了一些非常基本的代碼,當按下按鈕時基本顯示對話框,然後在按下取消按鈕時隱藏它。
我現在唯一的問題是,我可以繼續使用這種方法,儘管它意味着將每一個對話框的ID重複同一位代碼。
有沒有辦法讓一個腳本可能需要一個href值?或者某種方式,我可以在標籤上放置一個ID,這將帶出相同的ID相同的彈出窗口?
或者,也許這是一個更清潔和更有效的方式嗎?
這裏是我使用的代碼:
HTML:
<a id="create">New</a>
<a id="edit">Edit</a>
<div class="overlay"></div>
<div class="dialog" id="create-new-dialog">
<header>
<h1>Create New</h1>
</header>
<div class="dialog-content">
<p>I am some content info</p>
</div>
<footer>
<div class="inner-container">
<p></p>
<a id="exit" class="btn-dark-outline dialog-btn cancel">Cancel</a>
</div>
</footer>
</div>
<div class="dialog" id="edit-dialog">
<header>
<h1>Edit</h1>
</header>
<div class="dialog-content">
<p>I am some content info</p>
</div>
<footer>
<div class="inner-container">
<p></p>
<a id="exit" class="btn-dark-outline dialog-btn cancel">Cancel</a>
</div>
</footer>
</div>
CSS:
a {
background:lightpink;
padding:20px;
cursor:pointer;
}
.overlay {
position:absolute;
top:0;
right:0;
bottom:0;
left:0;
background:black;
display:none;
opacity:0.5;
}
.dialog {
background:green;
position:fixed;
width:50%;
margin-left:25%;
border:1px solid #000000;
z-index:999999;
display:none;
top:25%;
}
.dialog header {
min-height:50px;
background-color:#e9e9e9;
text-align:center;
border-bottom:1px solid #c4c4c4;
}
.dialog header h1 {
margin:0;
font-weight:300;
font-size:22px;
padding-top:10px;
}
.dialog .dialog-content {
background-color:#f7f7f7;
min-height:200px;
padding:20px;
margin:0;
}
.dialog footer {
position:absolute;
bottom:0;
background-color:#ececec;
width:100%;
border-top:1px solid #acacac;
}
.dialog footer .inner-container {
padding:10px;
text-align:right;
}
.dialog footer .inner-container p {
float:left;
width:300px;
text-align:left;
margin:0;
}
footer .dialog-btn {
background:#ffffff !important;
color:#000000 !important;
padding:13px;
display:inline-block;
}
SCRIPT:
$(".cancel").click(function(){
$('.dialog').stop().fadeOut(200);
$('.overlay').hide();
});
$("#create").click(function(){
$('#create-new-dialog').stop().fadeIn(300);
$('.overlay').fadeIn(300);
});
$("#edit").click(function(){
$('#edit-dialog').stop().fadeIn(300);
$('.overlay').fadeIn(300);
});
這是我一直的例子工作於: https://jsfiddle.net/susannalarsen/28t6t51x/
這是完美的東西我找了:)只是出於好奇,這樣我就可以學習。我注意到,與數據模式做的第一種方式是完全相同的代碼在href - 除了這一點:$('#'+ myModal)爲什麼需要這個哈希標籤? –
啊對不起,傻傻的問題,我剛剛解決了!咄。謝謝 –