نمایش نتایج 1 تا 3 از 3

نام تاپیک: اجرای تابع به صورت خودکار هر 4 ثانیه یکبار

  1. #1

    Question اجرای تابع به صورت خودکار هر 4 ثانیه یکبار

    سلام کسی میدونه چرا این کد کار نمی کنه


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>

    <script language="javascript">
    var i;
    function numq(x){
    i = x;

    document.write(i + "<br/>");
    ++i;
    if(i!=10){
    setTimeout("numq(i)",4000);
    }

    }

    numq(1);

    </script>

    </head>

    <body>
    </body>
    </html>



    خودتون امتحان کنید تا 2 بیشتر چاپ نمی کنه؟؟؟؟

    خیلی ممنون می شم کسی جواب بده

  2. #2

    نقل قول: اجرای تابع به صورت خودکار هر 4 ثانیه یکبار

    Timeout فقط یکبار اجرا میشه .... برای اینجور کارار بهتره از setInterval استفاده کنین
    و کدتونو به این صورت تغییر بدبن ...
    document.body.innerHTML = i;


    var i = 0;
    function numq(x) {
    i = x;

    //document.write(i + "");
    document.body.innerHTML = i;
    i++;
    if (i == 10)
    {
    //setTimeout("numq(i)", 4000);
    clearInterval(a);
    }

    }
    i = 1;
    var a = setInterval("numq(i)",2000);
    آخرین ویرایش به وسیله exlord : چهارشنبه 03 فروردین 1390 در 20:06 عصر

  3. #3

    نقل قول: اجرای تابع به صورت خودکار هر 4 ثانیه یکبار

    دوست عزیز مشکل شما استفاده از تابع document.write هستش. درصورت استفاده از این تابع کل HTML صفحه با متنی که به این تابع پاس شده جایگزین میشه. در مورد شما هم بخاطر اینکه HTML دیگه ای روی صفحه ندارید شاید به چشم نیاد اما همون بار اول اجرا کلیه محتویات صفحه (حتی تگ scritp و کدهایی که نوشتید پاک میشن و دیگه تابعی نمی مونه که 4ثانیه بعد اجرا بشه)
    Note: Try to avoid using document.write() in real life JavaScript code. The entire HTML page will be overwritten if document.write() is used inside a function, or after the page is loaded. However, document.write() is an easy way to demonstrate JavaScript output in a tutorial.
    مثالتون رو به این حالت تغییر بدید که هم بهینه تر هست و هم مشکل حل میشه.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>

    <script language="javascript">
    var i=1;
    function numq() {
    var ctrl = document.getElementById("lbCount")
    ctrl.innerHTML = i.toString();
    ++i;
    if(i!=10){
    setTimeout(numq,4000);
    }
    }
    </script>
    </head>

    <body onload="numq()">
    <span id="lbCount"></span>
    </body>
    </html>

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •