Probleme mit jQuery fadeOut()

Bicko

Erfahrenes Mitglied
Hallo,

Ich sitzte mal wieder an einem jQuery Problem an dem ich mir die Zaehne ausbeisse und nicht weiterkomme.

Ich habe ein Formular, dort kann man Bilder hochladen (via Ajax + jQuery). Man kann Bilder aber auch wieder loeschen. Ich habe dafuer das Demo Script von der jQuery UI Seite verwendet (Simple Photo Manager)

http://jqueryui.com/demos/droppable/#photo-manager

Das Ganze funktioniert nach etwas umbauen wunderbar, bis auf eine Sache.

Ich habe eine "Default" Bild Funktion. Ein default Bild ist dabei das Bild, dass bei einem Beitrag als erstes angezeigt wird. Wenn ich ein Bild hochlade ist dies automatisch "default" und der Bildname wird in ein hidden input field geschrieben. Funktioniert.

Nun lade ich noch ein Bild hoch und wenn ich auf das zweite Bild klicke kann ich dieses auf Default setzen. Klappt.

Nun zu meinem Problem. Ich versuche folgendes.
2 Bilder hochladen -> Form abschicken -> Validierung schlaegt fehl -> beide Bilder wieder anzeigen -> Default Bild in den Muell -> anderes Bild nun automatisch als Default markieren und Name in input field updaten.

Mein Problem ist der letzte Schritt. Es scheint so, das wenn ich mein fadeOut habe, wird bereits der Bildname ausgelesen, zu diesem Zeitpunkt sind aber noch beide Bilder dort vorhanden und es wird der Bildname vom geloeschten Bild genommen. Hier mal mein Sourcecode:

Code:
function deleteImage( $item ) {
$item.fadeOut(function() {
	var $list = $( "ul", $trash ).length ?
		$( "ul", $trash ) :
		$( "<ul id='trashlist' class='gallery ui-helper-reset'/>" ).appendTo( $trash );

	$item.find( "a.ui-icon-trash" ).remove();
	$item.append( recycle_icon ).appendTo( $list ).fadeIn(function() {
		$item
			.animate({ width: "48px" })
			.find( "img" )
				.attr('style', 'border: 0px')
				.animate({ height: "36px" })
				;
	});	
});
image = $item.find( "img.uploadedimg" ).attr("src");
var ImageName =  image.slice(image.lastIndexOf("/")+1);
$('#gallery').append($(' <input type="text"  name="remove_image[]" class="remove_image" value="'+ImageName+'">'));


if (ImageName == $('#default_image').val())
{
	$('#default_image').val("");
}
// Only one Image left, so set this as default
if (count < 2)
{
	$('#gallery').find("img").attr('style', 'border: 3px solid red');
	var imageNew = $('#gallery').find("img.uploadedimg").attr('src');
	var ImageNameNewDef =  imageNew.slice(imageNew.lastIndexOf("/")+1);
	$('#default_image').val(ImageNameNewDef);
}

}

Ich verstehe einfach nicht, was ich falsch mache. Habe schon mit Timeout probiert und vieles anderes, aber 2 Tage nun schon und immer noch keine Loesung. Sieht jemand was hier falsch laeuft?
 

Neue Beiträge

Zurück