Este artículo analiza la solución al problema de que SetTimeOut () no puede llamar a la función de parámetro en JS. Compártelo para su referencia, como sigue:
Solución: Reescribe el método SetTimeOut () y use la función de cierre. como sigue:
var _st = window.setTimeout; window.setTimeout = function (fref, mdelay) {if (typeof fref == 'function') {var argu = array.prototype.slice.call (argumentos, 2); var f = function () {fref.apply (null, argu); }; return _st (f, mdelay); } return _st (fref, mdelay);}Con tal reescritura, cuando se usa setTimeout () para llamar a la función de parámetro, puede usar el siguiente formulario:
setTimeout (diversión, 10, param);
donde la diversión está la función; 10 es el ciclo de llamadas, la unidad es milisegundos; Param es el parámetro de la función divertida.
Otra forma más simple:
Función Moving (id, target_x, target_y, t) {var ele = document.getElementById (id); // alerta ("Divobject:"+ele) var xPos = parseInt (ele.style.left); //alert(ele.style.left) var yPos = parseint (ele.style.top); if (xpos <target_x) {xPOS ++; } if (yPOS <target_y) {YPOS ++; } ele.style.left = xPos + "Px"; ele.style.top = ypos+"px"; // La función en sí misma se llama recursivamente, se escribe en una forma de cadena, presta atención a las citas del primer parámetro var repetir = "movimiento ('"+id+"',"+target_x+","+target_y+","+t+")"; var movment = setTimeOut (repetir, t);}For more information about JavaScript related content, please check out the topics of this site: "Summary of JavaScript switching effects and techniques", "Summary of JavaScript search algorithm skills", "Summary of JavaScript animation effects and techniques", "Summary of JavaScript errors and debugging techniques", "Summary of JavaScript data structures and algorithm skills", "Summary of JavaScript Algoritmos y técnicas de recorrido ", y" Resumen del uso de operaciones matemáticas de JavaScript "
Espero que este artículo sea útil para la programación de JavaScript de todos.