View Full Version : مشکل با دستور ajaxStart
  
hamedarian2009
چهارشنبه 30 بهمن 1392, 18:41 عصر
سلام من وقتی این دستورو استفاده می کنم اگه سلکتورم به داکیومنت باشه درست کار می کنه اما با id یا کلاس یک div کار نمی کنه
$('div.msg').ajaxStart(function(){
            $('img').show();
        });
ولی اینطوری جواب میده اما این مشکلی که داره اینه که من تو صفحه چندجا از اجکس استفاده کردم و این دستور همه اون عکسای loading  رو نشون میده
$(document).ajaxStart(function(){
            $('img').show();
به نظرتون باید چیکار کنم؟
jalil_gh
جمعه 02 اسفند 1392, 11:49 صبح
ajaxStart و ajaxEnd فقط در سطح document عمل میکنه و به طور پیشفرض تو همهی درخواستهای ajax فراخوانی میشه.
اگه میخایید که تو یه درخواست ajax فراخوانی نشه، تو پراپرتیهایی که برای ajax تعریف میکنید، مقدار global رو false بزارید.
مثلا:
$.ajax({
	// ....
	global: false, // don't call the global event listeners
	// .....
});
geeking
جمعه 02 اسفند 1392, 16: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-1404, Jelsoft Enterprises Ltd.