$("#id").append("html")添加html后页面显示问题。 下面是我的代码但是实际上在等待过程中没有出现等待的过程。而是在alert("发送成功!")出现后,页面才出现等待页面,这是为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 i=0,下面是j=0, 0怎么会小于0,所以for循环就没走 你好,请你了解一下回调函数的概念,会对你很有帮助~几乎所有的jquery函数都有一个回调函数的参数,使用它!!!比如,alert("haha");会在append完div后执行:$("#dialog").append("<div></div>",function(){ alert("haha");}); append()不自带回调函数但是如果我在append()方法后面加个alert()后又可以显示遮盖啊,还有这个问题该怎么解决啊 发送ajax前显示loading,在ajax的success或complete回调函数里面,去掉loading 首先,你用for循环模拟等待就是一个完全错误的思路,简单的逻辑就算1000000对于JS来说也只是几毫秒的事。其实,alert会阻塞JS里其他方法的执行,在你点击确定之前,所有JS将停止运行最后说一下你这代码要怎么改如果是form提交,无解。但是看起来好像不是,所以结构应该调整一下var appended = $('<div>正在发送请求</div>').appendTo($('#dialog'));//先执行append$.ajax({//ajax发送请求 url : 'aaa', dataType : 'json', success : function(data){ appended.remove();//在ajax请求的success方法里把上面append了的东西给remove掉。 //...其他逻辑 }}) 你这里用过setTimeout么?我没懂你说的产生事件等待是什么意思 这是我原来的代码,遮盖效果是在ajax自己执行完之后再显示的。而不是在我点击发送之后就显示的 这是我原来的代码,遮盖效果是在ajax自己执行完之后再显示的。而不是在我点击发送之后就显示的 这是我原来的代码,遮盖效果是在ajax自己执行完之后再显示的。而不是在我点击发送之后就显示的.没有等待效果是在ajax执行后再显示这样的需求,你这样的需求我也只能说前无古人后无来者,那你能说说你ajax请求过程中有什么样的体现吗,任何反应都没有?等ajax回来之后再显示发送中?还是你不明白ajax的异步原理? 你这个代码没问题,还是那句话,alert的时候不点击确定下面的代码是没办法执行的。你这个代码如果进了if里面,那也是先alert,你不点确定遮罩层一直在。点了确定之后遮罩层才会消失。当然,如果压根就没有alert,那只能说明你的请求出错了,或者res返回的数据有问题。 我理解错你的意思了。你的代码是没问题的,你说会在ajax回来之后才显示遮罩,感觉不太可能。是不是ajax返回的太快,所以让你有这样的错觉?你看看alert的时候先别点确定,看看遮罩层是不是在就知道了。append页面dom界面一般是不需要加什么回调不回调的,所以你的代码没什么问题。 这是我原来的代码,遮盖效果是在ajax自己执行完之后再显示的。而不是在我点击发送之后就显示的.没有等待效果是在ajax执行后再显示这样的需求,你这样的需求我也只能说前无古人后无来者,那你能说说你ajax请求过程中有什么样的体现吗,任何反应都没有?等ajax回来之后再显示发送中?还是你不明白ajax的异步原理?我的意思是:我点击“发送”,然后进入了我刚刚贴的代码里面。首先执行了append(),出现等待效果,然后程序继续执行ajax,这个过程中页面上是有等待效果的,当Ajax执行完后,提示发送成功,在调用remove()消除等待效果(这是我想要的效果)。但是实际上不是这样执行的。实际效果是我点击发送后,等待效果没出现,而是当Ajax执行完后,出现alert("发送成功")时才显示了等待效果 感觉上面说的在理,先遮盖,ajax成功后再去掉 去掉写到success里或者你这样测试,在ajax请求的后台方法里写一个比较耗时的操作,看看情况 你这个代码没问题,还是那句话,alert的时候不点击确定下面的代码是没办法执行的。你这个代码如果进了if里面,那也是先alert,你不点确定遮罩层一直在。点了确定之后遮罩层才会消失。当然,如果压根就没有alert,那只能说明你的请求出错了,或者res返回的数据有问题。ajax后台有好10左右秒的时间呢,我点击”发送“后,dialog没反应,应该是在执行后台的处理,过了几秒后,alert("发送成功")和遮盖效果同时显示,然后我点击alert的确定,遮盖效果就消失了,但这不是我想要的效果,无语了。 你先别发请求,用setTimeout来模拟异步$('#dialog').append('....');setTimeout(function(){ alert('成功'); $('#dialog>div[name=hide]').remove()},3000)这样试试看是什么样的效果。难道是你的ajax被改成同步了?就算是这样,也应该先显示遮罩,再锁死浏览器。你传的那2个false我也不知道是干嘛用的。 这个效果是好的,难道是我的ajax问题? 看看你传的2个false是什么意思吧。实在不行的话就把发请求的代码放到setTimeout里面去,加个几毫秒的延迟//append//var data setTimeout(function(){ AjaxRequest(...)},10)//function sendinfo() 好吧,append的确没有,click也没有对吧 ,你就不能用bind?我觉得解决这种问题最好的方法就是回调了,我只是给一种思路而已 使用一个setTimeout或者AJAX等待success之后关掉模态 求助:关于字符串替换的问题 关于 弹窗问题 endlessScroll 怎么用呢?求例子 javascript 的文件包含问题 打开一个最下化窗口 我的右键菜单显示出来后被压在一个SELECT下面了,怎么办? 一个鼠标事件的问题 大虾帮忙,关于eval的问题,解决立即给分!!! 如何阻止表单的文本框提交内容中包括'(单引号) 百度地图画矩形可随意编辑的问题 html页面如何获得js函数返还值? 请问这个语句的值:var a = document.getElementById("abc").id;
$("#dialog").append("<div></div>",function(){
alert("haha");
});
$.ajax({//ajax发送请求
url : 'aaa',
dataType : 'json',
success : function(data){
appended.remove();//在ajax请求的success方法里把上面append了的东西给remove掉。
//...其他逻辑
}
})
你这个代码没问题,还是那句话,alert的时候不点击确定下面的代码是没办法执行的。你这个代码如果进了if里面,那也是先alert,你不点确定遮罩层一直在。点了确定之后遮罩层才会消失。当然,如果压根就没有alert,那只能说明你的请求出错了,或者res返回的数据有问题。
或者你这样测试,在ajax请求的后台方法里写一个比较耗时的操作,看看情况
你这个代码没问题,还是那句话,alert的时候不点击确定下面的代码是没办法执行的。你这个代码如果进了if里面,那也是先alert,你不点确定遮罩层一直在。点了确定之后遮罩层才会消失。当然,如果压根就没有alert,那只能说明你的请求出错了,或者res返回的数据有问题。ajax后台有好10左右秒的时间呢,我点击”发送“后,dialog没反应,应该是在执行后台的处理,过了几秒后,alert("发送成功")和遮盖效果同时显示,然后我点击alert的确定,遮盖效果就消失了,但这不是我想要的效果,无语了。
$('#dialog').append('....');
setTimeout(function(){
alert('成功');
$('#dialog>div[name=hide]').remove()
},3000)这样试试看是什么样的效果。难道是你的ajax被改成同步了?就算是这样,也应该先显示遮罩,再锁死浏览器。你传的那2个false我也不知道是干嘛用的。
//append
//var data
setTimeout(function(){
AjaxRequest(...)
},10)
//function sendinfo()