PDA

View Full Version : سوال: مشکل در اجرای دوباره ی یک تابع



Ali0Boy
چهارشنبه 19 بهمن 1390, 00:32 صبح
سلام دوستان من یک تابع با 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 استفاده نمی کنیم؟

yones_safari
چهارشنبه 19 بهمن 1390, 11:19 صبح
عزیزم به clearTimeout باید مقداری رو که با setTimeout در یک متغییر ریختی رو بدی.

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

a=setTimeout(topfA1, 10);

e107365
چهارشنبه 19 بهمن 1390, 13:09 عصر
سلام دوستان من یک تابع با 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();
})();