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

نام تاپیک: مشکل در اجرای دوباره ی یک تابع

  1. #1

    مشکل در اجرای دوباره ی یک تابع

    سلام دوستان من یک تابع با jQuery در صفحه نوشتم که قراره وقتی روی عکس با نام topf کلیک شد این تابع اجرا شود و تا وقتی دستور صحیح است این تابع دوباره خوانده شود ولی اینکار یکبار بیشتر انجام نمی شود!
    کد:

    $(document).ready(function () {
    $("#topf").click(function () {
    if ($("#topf").position().top > ($("#topf").position().top - 200))
    $("#topf").css("top", ($("#topf").position().top - 2));
    else
    clearTimeout("topfA1");
    setTimeout("topfA1", 10);
    });





    اصلا برای اینکه یک تابع دوباره فعال شود چه باید به کنیم؟ مگر از دستور setTimeout استفاده نمی کنیم؟

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    دی 1388
    محل زندگی
    روبروی مانیتور
    پست
    320

    نقل قول: مشکل در اجرای دوباره ی یک تابع

    عزیزم به clearTimeout باید مقداری رو که با setTimeout در یک متغییر ریختی رو بدی.
    var a=setTimeout(topfA1, 10);
    clearTimeout (a);

    و برای اجرای دوباره باید setTimeout را روی مقدار قبلی بریزی.
    a=setTimeout(topfA1, 10);

  3. #3

    نقل قول: مشکل در اجرای دوباره ی یک تابع

    نقل قول نوشته شده توسط Ali0Boy مشاهده تاپیک
    سلام دوستان من یک تابع با jQuery در صفحه نوشتم که قراره وقتی روی عکس با نام topf کلیک شد این تابع اجرا شود و تا وقتی دستور صحیح است این تابع دوباره خوانده شود ولی اینکار یکبار بیشتر انجام نمی شود!
    کد:

    $(document).ready(function () {
    $("#topf").click(function () {
    if ($("#topf").position().top > ($("#topf").position().top - 200))
    $("#topf").css("top", ($("#topf").position().top - 2));
    else
    clearTimeout("topfA1");
    setTimeout("topfA1", 10);
    });





    اصلا برای اینکه یک تابع دوباره فعال شود چه باید به کنیم؟ مگر از دستور setTimeout استفاده نمی کنیم؟

    این تابع یک تابع خود اجرا کننده است:
    (function fn(){

    // Do some code ...
    fn();
    })();

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

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