В этой статье анализируется решение проблемы, которую SetTimeout () не может вызвать функцию параметра в JS. Поделитесь этим для вашей ссылки, следующим образом:
Решение: Перепишите метод settimeout () и используйте функцию закрытия. следующее:
var _st = window.setTimeout; window.setTimeout = function (fref, mdelay) {if (typeof fref == 'function') {var argu = array.prototype.slice.call (аргументы, 2); var f = function () {fref.apply (null, argu); }; вернуть _st (f, mdelay); } return _st (fref, mdelay);}При таком переписывании при использовании settimeout () для вызова функции параметра вы можете использовать следующую форму:
setTimeout (развлечение, 10, парамет);
где веселье - это функция; 10 - цикл вызовов, устройство составляет миллисекунды; PARAM - это параметр веселой функции.
Еще один простой способ:
Функция перемещения (id, target_x, target_y, t) {var ele = document.getelementbyid (id); // alert ("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"; // сама функция называется рекурсивно, записана в строковую форму, обратите внимание на кавычки первого параметра var repeat = "moveing ("+id+"',"+target_x+","+target_y+","+t+")"; var movment = settimeout (repeat, 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 »и« Сводка использования математических операций JavaScript ».
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.