客戶端每次點(diǎn)擊“調(diào)查問卷”,就會跳轉(zhuǎn)到相應(yīng)頁面:
點(diǎn)擊“調(diào)查問卷”即進(jìn)入調(diào)查問卷頁面:
我使用a 標(biāo)簽,每次訪問管理員提交的“調(diào)查問卷”
代碼如下:
<li><a href="" onclick="meizz(this)">調(diào)查問卷</a></li>
點(diǎn)擊“調(diào)查問卷”,調(diào)用meizz函數(shù),該函數(shù)通過ajax調(diào)用返回要訪問的“調(diào)查問卷”網(wǎng)址:
代碼如下:
<script type="text/javascript" language="javascript">
function meizz(e) {
$.ajax({
//async:false, //設(shè)置ajax的同步
type: "get", //get方式
url: "../handler/QueryQuestionnaire.ashx",
//返回?cái)?shù)據(jù)成功,將返回的json數(shù)據(jù)解析,顯示在課程信息列表中
success: function (strJson) {
//檢查后臺返回的數(shù)據(jù)
var dataArray = eval(strJson);
e.href = dataArray[0].Questionnaire;//要訪問的網(wǎng)址
},
//返回?cái)?shù)據(jù)失敗,彈出錯誤顯示
error: function (XmlHttpRequest, textStatus, errorThrown) {
alert(XmlHttpRequest.responseText);
}
});
}
</script>
現(xiàn)象是 e.href如果放在函數(shù)的$.ajax之上可以運(yùn)行,但是放到ajax里面綁定動態(tài)返回的地址,就不能運(yùn)行了。經(jīng)過了郁悶,最終找到了答案:因?yàn)閍jax默認(rèn)調(diào)用是異步的,所以不等ajax調(diào)用處理回調(diào)函數(shù)為href賦值,就直接發(fā)起了href,在這里這時候href是空值。解決方法:將ajax調(diào)用方法改為同步,聲明ajax調(diào)用方式為同步:
代碼如下:
$.ajax({
async:false, //設(shè)置ajax的同步
}
這樣href的執(zhí)行就必須等待function中ajax調(diào)用完成后才會觸發(fā),就得到了想要的結(jié)果。聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com