我之前就是想實現一個彈框,在彈框的時候用ajax 動態加載要展示的內容,這個地方實現起來並不難,但是在實現的時候遇到了一個坑。
頁面:
<div id="logDiv" style="display: none;" >
</div>
<a href="#" οnclick="javascript:seeKsLog('${requestScope.ksmap['ID'] }')">查看日誌</a> </td>
function seeKsLog(id){
var ksxm = "${requestScope.ksmap['KSXM']}";
var zjhm = "${requestScope.ksmap['ZJHM']}";
var jqxr =$.post("<%=request.getContextPath()%>/syslog/seeKsLog.htm",
{"examineeid":id,"ksxm":ksxm,"zjhm":zjhm},
function(data){
var aaa = "<table width='100%' border='1' cellspacing='0' cellpadding='0'>
<tr><th class='title-bar'><b> 考生姓名 </b></th>
<th class='title-bar'><b>證件號碼</b></th>
<th class='title-bar'><b>操作IP</b></th>"
+"<th class='title-bar'><b>操作人員</b></th>
<th class='title-bar'><b>操作時間</b></th>
<th class='title-bar'><b>操作內容</b></th> </tr>";
for(var i=0;i<data.length;i++){
if(data&&data.length>0){
aaa+="<tr> <td> "+ksxm+" </td><td> "+zjhm+" </td>";
aaa+="<td> "+data[i].accessip+" </td>";
if(data[i].managername!=null){
aaa+="<td> "+data[i].managername+" </td>";
}else{
aaa+="<td> 本人 </td>";
}
aaa+="<td> "+data[i].data+" </td><td> "+data[i].miaoshu+" </td></tr>"
}
}
aaa+="<tr><td colspan='6' align='center'>
<font style='color:red'> '提示: 交易結果2表示支付成功,交易結果0表示未支付。'</font>
</td></tr></table>";
$("#logDiv").html(aaa);
});
首先:坑1: 我在拼串的時候用了append() append():方法在被選元素的結尾(仍然在內部)插入指定內容。 這個地方啥意思?就是插入的內容還是在你選擇的那個標籤裏面
這個地方寫完以後,我定義了dialog初始化操作,在$(function(){});裏面,但是 在第一打開dialog的時候,總是第一遍沒有數據,第二遍纔出現,後來才發現,原來是因爲加載還沒結束,就執行下面的打開操作了。所以給函數加一個complete的方法,等加載完成後再執行dialog的open操作。
jqxr.complete(function(){
var cont = $("#logDiv").html();
alw(cont);
});
function alw(aa){
art.dialog({
title:'考生操作日誌',
content:aa,
//icon:'question',
lock:true,
resize:false,
button:[
{name:'關閉',callback:function(){
return true;
}}]
});
}
這麼搞沒問題