modal 被打開后,會(huì)在body標(biāo)簽上增加一個(gè) modal-open的class,直接判斷這個(gè)class是否存在就可以了。
為布爾津等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及布爾津網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、布爾津網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
if($('body').hasClass('modal-open')){
//modal已打開
}else{
//modal沒有打開
}
JQuery本身是沒有提供這樣的方法的,但JS本身就有這方法:
window.showModalDialog(URL, null, "dialogWidth:330px;dialogHeight:auto;status:no;help:no;resizable:yes;");
head
meta charset="UTF-8"
titleTitle/title
style
.hidden{
display:none;
}
.modal{
position:fixed;
width:500px;
height:300px;
top: 50%;
left: 50%;
margin-left: -200px;
margin-top: -200px;
background-color: white;
z-index:10;
}
.shadow{
position:fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
opacity:0.5;
background-color:black;
z-index: 9;
}
/style
/head
body
input onclick="add()" type="button" value="添加"/
table border="1" width="200px " id="tb"
tr
td target="hostname"1.1.1.1/td
td target="port"80/td
td target="seq"1/td
td
a class="edit"編輯/a | a class="del"刪除/a
/td
/tr
tr
td target="hostname"1.1.1.2/td
td target="port"82/td
td target="seq"2/td
td
a id='i2' class="edit"編輯/a | a class="del"刪除/a
/td
/tr
tr
td target="hostname"1.1.1.3/td
td target="port"84/td
td target="seq"3/td
td
a class="edit"編輯/a | a class="del"刪除/a
/td
/tr
/table
div class="modal hidden"
div id="modal1"
input name="hostname" type="text"/
input name="port" type="text"/
input name="seq" type="text"/
/div
div
input type="button" value="取消"/
input type="button" value="確認(rèn)" /
/div
/div
div class="shadow hidden"/div
script src="jquery-1.12.4.js"/script
script
function add() {
$('.modal,.shadow').removeClass('hidden');
$('.modal input[value="確認(rèn)"]').off().on('click',function(){
//我的理解:
var hostname = $("#modal1 input[name='hostname']").val();
var port = $("#modal1 input[name='port']").val();
var seq = $("#modal1 input[name='seq']").val();
var tr = document.createElement('tr');
var td1 = document.createElement('td');
td1.innerHTML = hostname;
td1.setAttribute('target','hostname');
$(tr).append(td1);
// console.log(tr);
var td2 = document.createElement('td');
td2.innerHTML = port;
td2.setAttribute('target','port');
$(tr).append(td2);
var td3 = document.createElement('td');
td3.innerHTML = seq;
td3.setAttribute('target','seq');
$(tr).append(td3);
var td4 = document.createElement('td');
td4.innerHTML = 'a class="edit"編輯/a | a class="del"刪除/a';
// $(td4).children('[class="edit"]').attr('onclick','func()'); // 用這種$('.edit').click(function() 綁定click事件,新加的點(diǎn)擊編輯沒有用,需要添加onclick才有用或直接用$('.c').delegate('a', 'click', function(){
$(tr).append(td4);
$('#tb').append(tr);
})
}
//點(diǎn)擊edit
// $('table').delegate('a','click',function(){ 不能寫$('tb') 因?yàn)檫@是table下的a標(biāo)簽添加點(diǎn)擊功能,而這個(gè)table是固定的。而寫成tr,tr是新加入的,這樣就找不到a標(biāo)簽
$('table').delegate('a','click',function(){
//點(diǎn)擊編輯,出現(xiàn)模態(tài)框
$(this).css('color','red');
$('.modal,.shadow').removeClass('hidden');
var tds = $(this).parent().prevAll(); //this:有編輯的a標(biāo)簽;獲取到同一個(gè)tr下的所有td
//將表格中的值輸入到模態(tài)框
tds.each(function(){
var val = $(this).attr('target'); //this :當(dāng)前td;(作用域,此this不同于上個(gè)this) val:當(dāng)前td的target值
var txt = $(this).text();
$('.modal input[name="' + val + '"]').val(txt); //將內(nèi)容添加到modal的input框中
})
$('.modal input[value="確認(rèn)"]').off().on('click',function(){confirm(tds)});
// var host = $(tds[1]).text(); //tds[1] 會(huì)變成dom對(duì)象
// var port = $(tds[0]).text();
//將選中編輯的對(duì)話框的元素放入到input中
// $("input[name='hostname']").val(host);
// $("input[name='port']").val(port);
//點(diǎn)擊確認(rèn),將修改過得值重新賦值給表格
function confirm(self){
var hostname = $("#modal1 input[name='hostname']").val();
var port = $("#modal1 input[name='port']").val();
var seq = $("#modal1 input[name='seq']").val();
console.log(11111);
self.eq(0).text(seq); // eq(0) 對(duì)應(yīng)的是seq
self.eq(1).text(port);
self.eq(2).text(hostname);
}
})
// 點(diǎn)擊刪除
// $('.del').click(function() {
// $(this).parent().parent().remove();
// })
//點(diǎn)擊取消,去除input框中的內(nèi)容
$('.modal input[value="取消"]').click(function(){
$(".modal input[type='text']").val("");
$('.modal,.shadow').addClass('hidden');
})
function func() {
//點(diǎn)擊編輯,出現(xiàn)模態(tài)框
$('.modal,.shadow').removeClass('hidden');
}
/script
/body
/html
Web開發(fā)人員每天都使用JavaScript為他們創(chuàng)建的網(wǎng)站帶來必要的功能。jQuery提供了一個(gè)提供強(qiáng)大功能和靈活性的特殊工具。jQuery是一個(gè)JavaScript庫,有助于簡化和標(biāo)準(zhǔn)化JavaScript代碼和HTML元素之間的交互。JavaScript允許網(wǎng)站具有交互性和動(dòng)態(tài)性,jQuery是一種有助于簡化流程的工具。
同時(shí)JQuery也是一個(gè)緊湊,快速且功能豐富的JavaScript庫。它通過易于使用的API在大量瀏覽器中運(yùn)行,使得HTML文檔遍歷和操作,事件處理,動(dòng)畫和Ajax更加簡單。JQuery結(jié)合了多功能性和可擴(kuò)展性,改變了數(shù)百萬人編寫JavaScript的方式。換句話說,由于JQuery,JavaScript以簡化形式呈現(xiàn)。閱讀起來相當(dāng)舒服。
擴(kuò)展資料:
JQuery的優(yōu)點(diǎn)
1、易于使用:如果我們將它與標(biāo)準(zhǔn)JavaScript和其他庫進(jìn)行比較,它使用起來既簡單又快捷。它由簡單的語法組成,并且需要較少的代碼行。
2、巨大的庫:與其他庫相比,它允許您執(zhí)行大量功能。
3、插件的可用性:可以使用許多預(yù)先編寫的插件來立即壓縮開發(fā)過程。這背后的另一個(gè)優(yōu)點(diǎn)是腳本的效率和安全性。
4、綜合教程:?JQuery網(wǎng)站提供了不言自明的文檔和教程,以便在絕對(duì)的編程初學(xué)者面前進(jìn)行理解。
5、AJAX支持:它允許我們輕松地開發(fā)Ajax模板,Ajax支持更流暢的界面,可以在頁面上執(zhí)行操作,而不需要重新加載整個(gè)頁面。
6、靈活性:所有瀏覽器中的契約,是目前最流行的JavaScript庫。
代碼如下:
//Bootstrap模態(tài)框(局部)
div
class="modal
fade"
id="orderDetail"
div
class="modal-dialog"
div
class="modal-content"
div
class="modal-header"
/div
div
class="modal-body"
table
class="table"
tr
td名
稱/td
td原
價(jià)/td
/tr
/table
/div
div
class="modal-footer"
/div
/div
/div
代碼如下:
/**
*
查看數(shù)據(jù)詳情
*
@黑眼詩人
;
*/
function
orderDetail(order_no)
{
//1.先清空模態(tài)框數(shù)據(jù)
$('#orderDetail').find('tr').first().nextAll().remove();
//2.外部插入
var
order_no
=
order_no;
$.post(base_url
+
'?d=adminc=ordersm=ajax_order_detail',
{order_no:order_no},
function(data){
//數(shù)據(jù)的格式如:
[{no:123,old:abc},{no:234,old:def},{no:345,old:ghi}]
var
obj
=
eval('('
+
data
+
')');
$.each(obj,
function(i,
n){
var
tr
=
$('#orderDetail').find('tr').last();
tr.after("trtd"+
n['organize_name']
+
":"
+
n['cate_name']
+
"
--
"
+
n['course_name']
+"/tdtd"+
n['old_price']
+"/tdtd"
+
n['sale_price']
+
"/td/tr");
});
});
}