setTimeout【注:out的'o'是小写】
如果setTimeout(function,mill)中的function带参数,则定义的毫秒树mill会失效,function方法会立即执行
解决方法:把参数定义为"全局变量"进行操作,或者不要单独写一个方法,直接再同一个方法内直接写function函数,例如本例中的第一个setTimeout;
例子1:
var operations =[Object object,Object object,Object object,Object object,Object object]; function sessionPlayback(){ playControl(0); } function playControl(i){ var operation = operations[i]; var content = $("#operation_content").val(); content+="#>"+operation.request; $("#operation_content").val(content); setTimeout(function(){ var content = $("#operation_content").val(); content+= operation.response+"\r\n"; $("#operation_content").val(content); },eval((operation.endTime - operation.startTime)*playSpeed)); i ++; if(i例子2:
function playControl(){ console.log("operations:"+operations); $("#operation_content").val(""); for(var i = 0;i < operations.length;i++){ var jiangetime = 0; if(i>0){ jiangetime = operations[i].startTime - operations[0].startTime; } console.log("jiangetime:"+jiangetime); setTimeout("showOperationHistory(operations["+i+"])",jiangetime); } $("#operation_content").focus(); } function showOperationHistory(operation){ var content = $("#operation_content").val(); content+="#>"+operation.request+"\r\n";//加换行 console.log("--------------------"); $("#operation_content").val(content); setTimeout(function(){ var content = $("#operation_content").val(); content+= operation.response+"\r\n"; $("#operation_content").val(content); },eval(operation.endTime - operation.startTime)); }传递的参数尽量是字符串!
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
网页题目:setTimeout的function带参数-创新互联
转载来于:http://cdkjz.cn/article/dooood.html