jquery异步交互问题

kadeer 2011-05-18 09:52:58
问题描述:用户登录到会员中心,如果用户有未提交的订单(订单状态为1),就弹出一个层,这个弹出层是我用Jquery的$.get()方法进行从库里读取出来的, 弹出层后提交订单再次回到会员中心还提示此订单没有提交,但是数据库里的状态已经改为2了,这是为什么??
...全文
83 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小辛、 2011-05-18
  • 打赏
  • 举报
回复
提交的时候页面没刷新吧!~ 因为这个是类似window.onload方法,如果页面没刷新,当然就请求一次的啊!~
kadeer 2011-05-18
  • 打赏
  • 举报
回复
$(function(){
alert("进入方法!")
var hotel_Name = $('#hostel_Name'); //酒店名称
var order_Number = $('#orderNumber'); //A标签
var mem_UserName = $('#mem_UserName');//会员名称
var myAlert = document.getElementById("alert"); //弹出的层
var mClose = document.getElementById("close"); //关闭按钮
$.get("MemberInfoManageHandler.ashx",function(data,textStatus){
alert("走$.get()方法")
alert(textStatus);
alert(data);
if(data!="")
{
alert("进入if条件")
var resultArray = new Array(); //将字符串转换为数组
resultArray = data.split(",");
hotel_Name.text(resultArray[0]); //酒店名称
order_Number.text(resultArray[1]); //订单编号
mem_UserName.text(resultArray[3]); //会员名称
order_Number.attr('href','ForegroundOrder.aspx?order_Numbering='+resultArray[1]+'&payMode='+resultArray[2]);

myAlert.style.display = "block";
myAlert.style.position = "absolute";
myAlert.style.top = "50%";
myAlert.style.left = "50%";
myAlert.style.marginTop = "-175px";
myAlert.style.marginLeft = "-200px";
mybg = document.createElement("div");
mybg.setAttribute("id","mybg");
mybg.style.background = "#000";
mybg.style.width = "100%";
mybg.style.height = "100%";
mybg.style.position = "absolute";
mybg.style.top = "0";
mybg.style.left = "0";
mybg.style.zIndex = "500";
mybg.style.opacity = "0.3";
mybg.style.filter = "Alpha(opacity=30)";
document.body.appendChild(mybg);
document.body.style.overflow = "hidden";
mClose.onclick = function()
{
myAlert.style.display = "none";
document.body.removeChild(mybg);
document.body.style.overflow = "auto";
}
orderNumber.onclick = function()
{
myAlert.style.display = "none";
document.body.removeChild(mybg);
document.body.style.overflow = "auto";
}
}else
{
alert("进入else")
myAlert.style.display = "none";
document.body.style.overflow = "auto";
}
})
})

$.get()请求只请求了一次,这是为什么呢?
小辛、 2011-05-18
  • 打赏
  • 举报
回复
那你可不可以在提交订单的时候做一步隐藏弹出层呢!~ 这样做 如果还有未提交的订单, 通过
ajax调用成功函数的时候才会显示层.
悠游の 2011-05-18
  • 打赏
  • 举报
回复
贴代码出来看,才能找原因
kadeer 2011-05-18
  • 打赏
  • 举报
回复
现在的问题是,我用断点调试提交完订单回到会员中心没有走我写的JS所以层一直显示
dreamzyl 2011-05-18
  • 打赏
  • 举报
回复
貌似是订单状态未更新,提交订单后重新获取状态试试
小辛、 2011-05-18
  • 打赏
  • 举报
回复
你把弹出层的方法,放倒success方法里面试试看呢?
qwe065560 2011-05-18
  • 打赏
  • 举报
回复
你没有更新显示状态啊。。既然数据库已经变了你只要把未提交改为提交就OK
悠游の 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kadeer 的回复:]

JScript code
$(function(){
alert("进入方法!")
var hotel_Name = $('#hostel_Name'); //酒店名称
var order_Number = $('#orderNumber'); //A标签
var mem_UserName = $('#mem_UserName');//会员名称
var……
[/Quote]

$(function(){ })
这句话等同:$(document).ready(function(){})
页面DOM结束时执行
如果要循环执行,可以用setInterval方法

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧