tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
300
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Zack
    Zack Zack ist offline cookies vader
    Registriert seit
    Oct 2007
    Ort
    hier und dort
    Beiträge
    258
    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:
    HTML-Code:
    ...
    	<div id="contentBrowserWarp">
    		<div id="contentBrowserSlider"></div>
    	</div>
    ...
    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.
    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!

  2. #2
    Avatar von Zack
    Zack Zack ist offline cookies vader
    Registriert seit
    Oct 2007
    Ort
    hier und dort
    Beiträge
    258
    Ok ich hab raus gefunden das
    Code javascript:
    1
    2
    3
    
    $("tr.folder:not(tr.folderBack)").click(function(){
        openFolder($(this).data("path"), false);
    });
    openFolder mehrfach aufruft, was dazu führt das die Funktions mehrfach an das Element gebunden wurde.
    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

  1. LDAP-Datenbank kann nicht hinzugefügt werden
    Von evoleena im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 13.12.08, 15:26
  2. Antworten: 11
    Letzter Beitrag: 16.05.08, 08:48
  3. Designer Problem: Collectionelement wird nicht hinzugefügt
    Von Danielku15 im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 08.01.08, 09:05
  4. Antworten: 5
    Letzter Beitrag: 18.01.07, 18:52
  5. Was muss hier entfernt bzw. hinzugefügt werden?
    Von Djingeringe im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 04.07.05, 13:43