PDA

View Full Version : سوال: مشکل با تابع کال بک در $(selector).show(speed,callback)



idocsidocs
جمعه 15 مهر 1390, 13:32 عصر
من وقتی از کد زیر استفاده می کنم، تگ انتخاب شده بعد از یک ثایه به بالا جمع می شه و بعد از جمع شدن تگ، تابع کال بک اجرا می شه. توجه کنید که توی این کد به تابع کال بک هیچ پارامتری ندادم:
$('#right').click(function(){
$('#header').slideToggle(1000, endanimate );
});

function endanimate ()
{
alert('slideToggle ok');
}
});
ولی وقتی از کد زیر استفاده می کنم اول تابع کال بک اجرا می شه و بعد slideToggle اجرا می شه. لطفا توجه کنید که در اینجا به تابع endanimate یه پارامتر دادم.

$('#right').click(function(){
$('#header').slideToggle(1000, endanimate('MY ANIMATE') );
});

function endanimate (str)
{
alert(str);
}
});

لطفا بگید که چرا کد دوم به شکل استاندارد اجرا نمی شه؟

salman_looloo
جمعه 15 مهر 1390, 19:27 عصر
با وجود اینکه jQuery یه زبانه اسکریپتی خیلی قوی هست ولی خب حتما خالی از باگ هم نیست . باید بجای اینکه فانکشنتو بیرون بنویسی توی خود کال بک یه فانکشن بنویسی . ممنون که دقت بالاتونو در اختیار ما قرار دادید.


$(document).ready(function () {
$('#right').click(function () {
$('#header').slideToggle(1000, function () {
alert("This is Test");
});
});
});

idocsidocs
جمعه 15 مهر 1390, 20:31 عصر
با وجود اینکه jQuery یه زبانه اسکریپتی خیلی قوی هست ولی خب حتما خالی از باگ هم نیست . باید بجای اینکه فانکشنتو بیرون بنویسی توی خود کال بک یه فانکشن بنویسی. ممنون که دقت بالاتونو در اختیار ما قرار دادید.
اگر به تابع کال بک هیچ پارامتری ارسال نکنیم همین روشی که من استفاده می کنم جواب می ده و جی کوئری با این مورد مشکل نداره.

مشکل زمانی به وجود می یاد که توی تابع کال بک یه آرگومانت ارسال کنیم.