setTimeout의 function 대역 매개변수

2197 단어 functioncontent
set Time out [주: 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
"; $("#operation_content").val(content); },eval((operation.endTime - operation.startTime)*playSpeed)); i ++; if(i<operations.length){ var jiangetime = 0; jiangetime = (operations[i].startTime - operations[i-1].startTime)*playSpeed; console.log("jiangetime:"+jiangetime); setTimeout("playControl("+i+")",jiangetime); } }

예 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
";// console.log("--------------------"); $("#operation_content").val(content); setTimeout(function(){ var content = $("#operation_content").val(); content+= operation.response+"\r
"; $("#operation_content").val(content); },eval(operation.endTime - operation.startTime)); }

전달된 매개 변수는 가능한 한 문자열입니다!

좋은 웹페이지 즐겨찾기