ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
300
300
EMPFEHLEN
-
Hallo,
das ganze ist etwas umfangreicher. Deshalb vorab einige Erklärungen:
Ich lade persistente Objekte von einem Webservice per SOAP und baue mir aus diesen einen JSON-String zusammen den ich dann an ein Template gebe. Diese Objeckthierarchie entspricht einem Baum und beinhaltet eine Ordnerstruktur und Dokumenten.
Diesen lese ich dann per jQuery aus und baue mir meine unterschiedlichen Ansichten zusammen. Dabei ist eine Navigation innerhalb der Ansicht möglich. Diese wechselt mit dem bekannten Slideeffekt eines Content Sliders.
Die HTML Struktur:
Wenn ich jetzt tiefer in den Ordner navigiere, dann wird das Block-Element contentBrowserSlider immer erweitert (siehe Javascript Code), wenn ich eine Ebene höher navigiert wird, wird das vorletzte Element als genommen und das letzte raus gelöscht.HTML-Code:... <div id="contentBrowserWarp"> <div id="contentBrowserSlider"></div> </div> ...
Der Witz ist jetzt allerdings: wenn ich tiefer navigiere, dann einen höher und dann wieder einen tiefer wird das Element (im Code die Variable "div") allerdings 3 mal angehängt.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
/** * display the contentBrowser with given content and slide it in * @param content * String the content * @param direction * String direction */ function displayContent(content, direction){ if(typeof(direction) == "undefined") direction = "left"; var slider = $("#contentBrowserSlider"); var width = parseInt($("#contentBrowserWidth").width()); var left = parseInt(slider.position().left); var newLeft = (direction == "left") ? left - width : left + width; var isEmpty = true; if(slider.children().length > 0) isEmpty = false; var div = null; if(direction == "left"){ div = $("<div/>").attr({ "class" : "contentBrowser" }).css({ "width" : width }).html(content); }else{ div = $(".contentBrowser:last").prev(); } function changeHeight(){ var height = div.children().height(); console.log(div.height()); $("#contentBrowserWarp").animate({ "height" : height + "px" }); initNavigationHandler(); if(direction == "right"){ console.log($(".contentBrowser:last")); $(".contentBrowser:last").remove(); } } if(!isEmpty){ if(direction == "left"){ slider.append(div).animate({ "left" : newLeft + "px" }, changeHeight); }else{ slider.animate({ "left" : newLeft + "px" }, changeHeight); } }else{ if(direction == "left") slider.append(div); changeHeight(); } }
Danke!Und was lernen wir darauf? Es niemals versuchen! (Homer Jay Simpson)
127.0.0.1 Home! Sweet Home!
Ich würde mich über eine Bewertung meiner Beiträge freuen!
-
Ok ich hab raus gefunden das
openFolder mehrfach aufruft, was dazu führt das die Funktions mehrfach an das Element gebunden wurde.Code javascript:1 2 3
$("tr.folder:not(tr.folderBack)").click(function(){ openFolder($(this).data("path"), false); });
Geändert von Zack (08.01.12 um 23:10 Uhr)
Und was lernen wir darauf? Es niemals versuchen! (Homer Jay Simpson)
127.0.0.1 Home! Sweet Home!
Ich würde mich über eine Bewertung meiner Beiträge freuen!
Ähnliche Themen
-
LDAP-Datenbank kann nicht hinzugefügt werden
Von evoleena im Forum Linux & UnixAntworten: 2Letzter Beitrag: 13.12.08, 15:26 -
Verhindern, dass ein Freund zweimal hinzugefügt wird...
Von maxikey im Forum PHPAntworten: 11Letzter Beitrag: 16.05.08, 08:48 -
Designer Problem: Collectionelement wird nicht hinzugefügt
Von Danielku15 im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 08.01.08, 09:05 -
Warenkorb: nur erste Ware wird hinzugefügt
Von hab1cht im Forum PHPAntworten: 5Letzter Beitrag: 18.01.07, 18:52 -
Was muss hier entfernt bzw. hinzugefügt werden?
Von Djingeringe im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 04.07.05, 13:43





Zitieren
Login





