View Full Version : مشکل با دستور ajaxStart
hamedarian2009
چهارشنبه 30 بهمن 1392, 17:41 عصر
سلام من وقتی این دستورو استفاده می کنم اگه سلکتورم به داکیومنت باشه درست کار می کنه اما با id یا کلاس یک div کار نمی کنه
$('div.msg').ajaxStart(function(){
$('img').show();
});
ولی اینطوری جواب میده اما این مشکلی که داره اینه که من تو صفحه چندجا از اجکس استفاده کردم و این دستور همه اون عکسای loading رو نشون میده
$(document).ajaxStart(function(){
$('img').show();
به نظرتون باید چیکار کنم؟
jalil_gh
جمعه 02 اسفند 1392, 10:49 صبح
ajaxStart و ajaxEnd فقط در سطح document عمل میکنه و به طور پیشفرض تو همهی درخواستهای ajax فراخوانی میشه.
اگه میخایید که تو یه درخواست ajax فراخوانی نشه، تو پراپرتیهایی که برای ajax تعریف میکنید، مقدار global رو false بزارید.
مثلا:
$.ajax({
// ....
global: false, // don't call the global event listeners
// .....
});
geeking
جمعه 02 اسفند 1392, 15:23 عصر
در ادامه توضیح دوستمون توی Ajax Events دو دسته Event وجود دارد :
Global Event
Local Event
وقتی یک درخواست ajax ایجاد میشود تعدادی از این eventها میتونند در صفحه مون اتفاق بیفتند که من اینجا لیست کاملشون رو مییارم :
ajaxStart (Global Event)
ajaxSend (Global Event)
ajaxSuccess (Global Event)
ajaxError (Global Event)
ajaxComplete (Global Event)
ajaxStop (Global Event)
beforeSend (Local Event)
success (Local Event)
error (Local Event)
complete (Local Event)
و برای استفاده بعد از اینکه خاصیت global: false رو همونطور در بالا اشاره کردند را اعمال کردیم میتونیم استفاده کنیم :
Local Events
$.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ......
});
Global Events
$("#loading").bind("ajaxSend", function(){
$(this).show();
}).bind("ajaxComplete", function(){
$(this).hide();
});
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.