The window.settimeout() method has two ways to call a function with parameters:
function init(){ var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url); window.setTimeout(function(){ searchJDWater(url);},100); }
function init(){ var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url); window.setTimeout(“searchJDWater(”+url+“)”, 100); }
Note: When using setTimeout with a parameter method, be careful, setTimeout("function name(" +parameter+")", milliseconds), the parameters here can only be in string form, and cannot pass an object
-------------------- -------
The following method is wrong, and the browser status bar will prompt that the parameters are invalid:
function init(){ var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url); window.setTimeout(searchJDWater(url), 100); }
---------------- -----------------------------------------------
settimeout () Function expansion:
Search the Internet for "setTimeout with parameters". Many friends have written many methods to implement method loops using setTimeout with objects, for example:
<script language="javascript"> var __sto = setTimeout; window.setTimeout = function(callback,timeout,param) { var args = Array.prototype.slice.call(arguments,2); var _cb = function() { callback.apply(null,args); } __sto(_cb,timeout); } //测试代码 function aaaa(a) { alert(a); } function aaaaa(a,b,c) { alert(a + b + c); } var a = new Object(); window.setTimeout(aaaa,1000,a); window.setTimeout(aaaaa,2000,a,6,7); </script>
In this example, setTimeout usage, setTimeout (callback function, time, parameter 1,..., parameter n).
Another example:
<script type="text/javascript"> var _st = window.setTimeout; window.setTimeout = function(fRef, mDelay) { if(typeof fRef == 'function'){ var argu = Array.prototype.slice.call(arguments,2); var f = (function(){ fRef.apply(null, argu); }); return _st(f, mDelay); } return _st(fRef,mDelay); } function test(x){ alert(x); } window.setTimeout(test,1000,'fason'); </script>
In this example, window.setTimeout is reloaded and apply is used to call back the previous function.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test("+ obj +")",1000); } </script> <input id="testButton" type="button" onclick="test(1)">
When the mouse presses this button, test() is called, passing "1" in, and a dialog box pops up on the screen every 1000 milliseconds (1 second). Displays 1, no problem.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test("+ obj +")",1000); } </script> <input id="btnTest" type="button" onclick="test(this)">
This here can be understood as document.getElementById("btnTest"). When the mouse presses this button, an object is passed to the test function, and the screen displays [object] will not be displayed a second time after 1000 milliseconds. Here comes the problem. A script error is reported in the lower left corner of the browser, and the detailed information shows that object is undefined.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test()",1000); } </script> <input id="testButton" type="button" onclick="test(this)">
test() in setTimeout has no parameters. It displays [object] for the first time and undefined after 1000 milliseconds. The variable has not yet been assigned a value, that is to say, use this method. It is possible to implement method loops with parameters, but the parameters are destroyed.
In fact, this can be achieved very easily, and there is no need to write such a long code to achieve it.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test('"+ obj +"')",1000); } </script> <input id="testButton" type="button" onclick="test(this)">
Note that the quotation marks before and after the parameter obj in test in setTimeout have a pair of single quotation marks within the double quotation marks, like this: setTimeout("test(single quotation mark double quotation mark +obj+double quotes single quotes)"), OK~ The screen displays [object] every 1000 milliseconds, and the object is transferred successfully.
The above is the detailed content of Detailed explanation of usage examples of javascript function setTimeout with parameters. For more information, please follow other related articles on the PHP Chinese website!