johny7: jQuery: komisches Problem mit ajaxStop()

Beitrag lesen

Moin allerseits,

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.

Ich weiß. Ich habe das absichtlich gemacht, um das this-Objekt zu umgehen. Aber jetzt habe ich verstanden, wie das funktioniert.

  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
	<title>clubworks</title>  
	<script type="text/javascript" src="includes/js/jquery.js"></script>  
	<script type="text/javascript">  
	jQuery(  
		function()  
		{  
			$('.pane').bind('click',function(){  
					$(this).load('newfile.php');  
					$(this).ajaxComplete(function () { alert('nach AJAX: ' + $(this).attr('ID')); });  
			});  
		}  
	);  
	</script>  
	<style>  
	.pane  
	{  
		padding:5px;  
		border:1px solid red;  
		width:300px;  
		height:300px;  
		margin:10px;  
	}  
	</style>  
</head>  
<body>  
<div class="pane" id="pane1"></div>  
<div class="pane" id="pane2"></div>  
<div class="pane" id="pane3"></div>  
<div class="pane" id="pane4"></div>  
</body>  
</html>  

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.

Ich habe jetzt auf ajaxComplete umgestellt. Trotzdem liefert er mir die ganze Schlange der bereits geladenen Elemente. Muss ich zwingend von load() umsteigen? Wozu braucht man dann noch diese Funktionen, wenn man in AJAX einfach einfach unter success: bestimmen kann, was gemacht werden soll? Nur wegen des Komforts?

Gibt es denn irgend eine Möglichkeit, bei Verwendung von load() nur das zuletzt geladene Objekt zu bekommen? Wofür setzt man denn bitteschön das Objekt vor ajaxStop()? Damit alle geladenen Objekte angezeigt werden?

Grüße, JN

--
ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
http://www.johny7.de