suit: jQuery: komisches Problem mit ajaxStop()

Beitrag lesen

$('.pane').click(function(){
var pane = $(this).attr('ID');
alert(pane);
$('#'+pane).load('newfile.html');
$('#'+pane).ajaxStop(function () { alert('nach AJAX' + pane); });
});

  

> Der HTML-Aufbau sieht folgendermaßen aus:  
> ~~~html
  

> <div class="pane" id="pane1"></div>  
> <div class="pane" id="pane2"></div>  
> <div class="pane" id="pane3"></div>  
> <div class="pane" id="pane4"></div>  
> 

Die ids sind nicht notwendig, wenn du schon ein Framework verwendest, dass dir Arbeit abnimmt, solltest du das auch nutzen und nicht erstrecht wieder kompliziert herumwerken.

Folendes sollte reichen.

$('.pane').click(function(){
  $(this).load('newfile.html').ajaxStop(function () { alert('nach AJAX' + pane); });
});

Aus Gründen der Übersichtlichkeit (und vor allem Logik) würde ich an deiner Stelle aber .ajax() mit success (anstatt load) und complete (anstatt ajaxStop).

Wieso ist das so? Außerhalb ist pane ein Wert, innerhalb ein anderer? Wie kann ich das beheben?

Weil ajaxStop global gesetzt wird und dann für alle beendeten ajax-Dingensen gilt, ist success/complete nur für den jeweiligen Request da - das steht auch in der Doku so.