تقوم هذه المقالة بتحليل الحل للمشكلة التي لا يمكن لـ 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 repert = "moving ('"+id+"،"+target_x+"،"+target_y+"،"+t+") ؛ var movment = setTimeout (كرر ، t) ؛}لمزيد من المعلومات حول المحتوى المتعلق بـ javaScript ، يرجى مراجعة موضوعات هذا الموقع: "ملخص لتأثيرات وتقنيات تبديل JavaScript" ، "ملخص لمهارات خوارزمية بحث JavaScript" ، "ملخص لتأثيرات الرسوم المتحركة JavaScript و Techniques و" ملخص ". خوارزميات وتقنيات JavaScript Traversal "، و" ملخص استخدام العمليات الرياضية JavaScript "
آمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.