tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
1473
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Hi Leute,

    auf meiner Seite benutze ich einige JavaScripts. Ich habe dabei versucht Überschneidungen zu verhindern, indem ich durch abfrage von $_GET Variabeln im PHP Code nur die jeweils für die Seite notwendigen JS Dateien einbinde. Allerdings habe ich ein Kwicks Menü und ein Login Slide Panel, (beides JQuery Plugins) die beide auf allen Seiten benötigt werden. Plötzlich funktionierte im Internet Explorer beides nicht mehr. Im Firefox gab es keine Probleme.

    Wenn ich jetzt die JS Dateien vom Kwicks Menü rausnehme, dann gibt es keine Probleme mehr. Aber das geht ja nicht Kann man dagegen irgendwas tun? Siehe www.random-shox.com


    Also ich schicke hier mal die 2 Scripts. eins ist sehr kurz und eines etwas länger. Vielleicht sieht ja einer wo die Überschneidung ist.

    Die vom SlidePanel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    $(document).ready(function() {
        
        // Expand Panel
        $("#open").click(function(){
            $("div#panel").slideDown("slow");
        
        });    
        
        // Collapse Panel
        $("#close").click(function(){
            $("div#panel").slideUp("slow");    
        });        
        
        // Switch buttons from "Log In | Register" to "Close Panel" on click
        $("#toggle a").click(function () {
            $("#toggle a").toggle();
        });        
            
    });

    Und die von dem Kwicks Slide Menü

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
     function my_kwicks(){
        $('.kwicks').kwicks({
            duration: 300,   
            max: 120,  
            spacing:  0  
        });
    }  
     
     $(document).ready(function(){                  
        my_kwicks();
    });
    Geändert von Carrear (13.01.10 um 21:39 Uhr)
     

  2. #2
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Was sagt den die IE Fehlerkonsole? in welcher Datei entsteht der Fehler(entsteht überhaupt einer?)
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  3. #3
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Ich weiß nicht was die Fehlerkonsole ist ehrlich gesagt. Unten in der Zeile ist ganz links so nen gelbes Dreieck und das spuckt folgendes (siehe Bild im Anhang)

    Eigentlich dürfte das Problem damit aber nichts zu tun haben. Denn die dort genannte Kwicks.js kann ich includet lassen, und trotzdem funktioniert das Login Panel. Nur die dazugehörige custom.js (oben gepostet) muss ich rausnehmen,damit es funktioniert. Aber ich poste hier trotzdem mal die Kwicks.js , falls es doch daran liegen könnte. Vorher aber noch eine kleine Anmerkung. Das Menü, dass auf der Kwicks.js und der Custom.js basiert funktioniert im Internet Explorer so oder so nicht, da kann ich machen was ich will. Das hat mich aber bis hierhin nicht gestört, weil nur die Animation ausbleibt, die Verlinkung an sich aber funktioniert. So jetzt - Kwicks.js

    Code :
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    
    /*
        Kwicks for jQuery (version 1.5.1)
        Copyright (c) 2008 Jeremy Martin
        http://www.jeremymartin.name/projects.php?project=kwicks
        
        Licensed under the MIT license:
            http://www.opensource.org/licenses/mit-license.php
     
        Any and all use of this script must be accompanied by this copyright/license notice in its present form.
    */
     
    (function($){
        $.fn.kwicks = function(options) {
            var defaults = {
                isVertical: false,
                sticky: false,
                defaultKwick: 0,
                event: 'mouseover',
                spacing: 0,
                duration: 500
            };
            var o = $.extend(defaults, options);
            var WoH = (o.isVertical ? 'height' : 'width'); // WoH = Width or Height
            var LoT = (o.isVertical ? 'top' : 'left'); // LoT = Left or Top
            
            return this.each(function() {
                container = $(this);
                var kwicks = container.children('li');
                var normWoH = kwicks.eq(0).css(WoH).replace(/px/,''); // normWoH = Normal Width or Height
                if(!o.max) {
                    o.max = (normWoH * kwicks.size()) - (o.min * (kwicks.size() - 1));
                } else {
                    o.min = ((normWoH * kwicks.size()) - o.max) / (kwicks.size() - 1);
                }
                // set width of container ul
                if(o.isVertical) {
                    container.css({
                        width : kwicks.eq(0).css('width'),
                        height : (normWoH * kwicks.size()) + (o.spacing * (kwicks.size() - 1)) + 'px'
                    });                
                } else {
                    container.css({
                        width : (normWoH * kwicks.size()) + (o.spacing * (kwicks.size() - 1)) + 'px',
                        height : kwicks.eq(0).css('height')
                    });                
                }
     
                // pre calculate left or top values for all kwicks but the first and last
                // i = index of currently hovered kwick, j = index of kwick we're calculating
                var preCalcLoTs = []; // preCalcLoTs = pre-calculated Left or Top's
                for(i = 0; i < kwicks.size(); i++) {
                    preCalcLoTs[i] = [];
                    // don't need to calculate values for first or last kwick
                    for(j = 1; j < kwicks.size() - 1; j++) {
                        if(i == j) {
                            preCalcLoTs[i][j] = o.isVertical ? j * o.min + (j * o.spacing) : j * o.min + (j * o.spacing);
                        } else {
                            preCalcLoTs[i][j] = (j <= i ? (j * o.min) : (j-1) * o.min + o.max) + (j * o.spacing);
                        }
                    }
                }
                
                // loop through all kwick elements
                kwicks.each(function(i) {
                    var kwick = $(this);
                    // set initial width or height and left or top values
                    // set first kwick
                    if(i === 0) {
                        kwick.css(LoT, '0px');
                    } 
                    // set last kwick
                    else if(i == kwicks.size() - 1) {
                        kwick.css(o.isVertical ? 'bottom' : 'right', '0px');
                    }
                    // set all other kwicks
                    else {
                        if(o.sticky) {
                            kwick.css(LoT, preCalcLoTs[o.defaultKwick][i]);
                        } else {
                            kwick.css(LoT, (i * normWoH) + (i * o.spacing));
                        }
                    }
                    // correct size in sticky mode
                    if(o.sticky) {
                        if(o.defaultKwick == i) {
                            kwick.css(WoH, o.max + 'px');
                            kwick.addClass('active');
                        } else {
                            kwick.css(WoH, o.min + 'px');
                        }
                    }
                    kwick.css({
                        margin: 0,
                        position: 'absolute'
                    });
                    
                    kwick.bind(o.event, function() {
                        // calculate previous width or heights and left or top values
                        var prevWoHs = []; // prevWoHs = previous Widths or Heights
                        var prevLoTs = []; // prevLoTs = previous Left or Tops
                        kwicks.stop().removeClass('active');
                        for(j = 0; j < kwicks.size(); j++) {
                            prevWoHs[j] = kwicks.eq(j).css(WoH).replace(/px/, '');
                            prevLoTs[j] = kwicks.eq(j).css(LoT).replace(/px/, '');
                        }
                        var aniObj = {};
                        aniObj[WoH] = o.max;
                        var maxDif = o.max - prevWoHs[i];
                        var prevWoHsMaxDifRatio = prevWoHs[i]/maxDif;
                        kwick.addClass('active').animate(aniObj, {
                            step: function(now) {
                                // calculate animation completeness as percentage
                                var percentage = maxDif != 0 ? now/maxDif - prevWoHsMaxDifRatio : 1;
                                // adjsut other elements based on percentage
                                kwicks.each(function(j) {
                                    if(j != i) {
                                        kwicks.eq(j).css(WoH, prevWoHs[j] - ((prevWoHs[j] - o.min) * percentage) + 'px');
                                    }
                                    if(j > 0 && j < kwicks.size() - 1) { // if not the first or last kwick
                                        kwicks.eq(j).css(LoT, prevLoTs[j] - ((prevLoTs[j] - preCalcLoTs[i][j]) * percentage) + 'px');
                                    }
                                });
                            },
                            duration: o.duration,
                            easing: o.easing
                        });
                    });
                });
                if(!o.sticky) {
                    container.bind("mouseleave", function() {
                        var prevWoHs = [];
                        var prevLoTs = [];
                        kwicks.removeClass('active').stop();
                        for(i = 0; i < kwicks.size(); i++) {
                            prevWoHs[i] = kwicks.eq(i).css(WoH).replace(/px/, '');
                            prevLoTs[i] = kwicks.eq(i).css(LoT).replace(/px/, '');
                        }
                        var aniObj = {};
                        aniObj[WoH] = normWoH;
                        var normDif = normWoH - prevWoHs[0];
                        kwicks.eq(0).animate(aniObj, {
                            step: function(now) {
                                var percentage = normDif != 0 ? (now - prevWoHs[0])/normDif : 1;
                                for(i = 1; i < kwicks.size(); i++) {
                                    kwicks.eq(i).css(WoH, prevWoHs[i] - ((prevWoHs[i] - normWoH) * percentage) + 'px');
                                    if(i < kwicks.size() - 1) {
                                        kwicks.eq(i).css(LoT, prevLoTs[i] - ((prevLoTs[i] - ((i * normWoH) + (i * o.spacing))) * percentage) + 'px');
                                    }
                                }
                            },
                            duration: o.duration,
                            easing: o.easing
                        });
                    });
                }
            });
        };
    })(jQuery);
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Scripts "stören sich gegenseitig"-fehler.jpg  
     

  4. #4
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Ist das Element eine <ul>? Der Aufruf der den Fehler verursacht ist die suche nach children des Elements $(".kwicks) die ein <li> sind, aber .kwicks hat ja li als childs.

    Spann die .js doch einfach in ein Conditional Comment http://de.wikipedia.org/wiki/Conditional_Comments so dass es nicht ausgeführt wird wenn es im IE ist.
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  5. #5
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Zitat Zitat von Avorin Beitrag anzeigen
    Ist das Element eine <ul>? Der Aufruf der den Fehler verursacht ist die suche nach children des Elements $(".kwicks) die ein <li> sind, aber .kwicks hat ja li als childs.

    Spann die .js doch einfach in ein Conditional Comment http://de.wikipedia.org/wiki/Conditional_Comments so dass es nicht ausgeführt wird wenn es im IE ist.
    Also siehst du da keine Möglichkeit das auch im IE zum laufen zu bringen? Denn im Firefox klappts ja auch.

    Viele Grüße
    und erstmal danke für den Tipp
     

  6. #6
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    ich sehe gerade das ich einen Denkfehler gemacht habe: Der Fehler betrifft folgende Zeile:

    Code :
    1
    
    var kwicks = container.children('li');

    Aber nicht den Aufruf der children() Methode, sondern ja das 4te Zeichen, also die Variablendeklaration.
    Versuche mal anstatt
    Code :
    1
    
    container = $(this);
    Code :
    1
    
    var container = $(this);
    zu schreiben.(in der zeile darüber: 26)

    ansonsten bin ich mir auch nicht sicher was sonst helfen könnte, denn eigentlich müsste es funktionieren

    Vielleicht kann Quaese was dazu sagen?
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  7. #7
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Hehe Dankee !! Jetzt funktioniert alles. Aber er zeigt mir ein paar andere Fehler an. Wärst bereit mir hier noch ein paar Minuten Support zu leisten? Dann poste ich die mal.
     

  8. #8
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    immer reinposten, bin ja nicht der einzige hier im forum
    bin noch ein bisschen wach, kein Problem.
    Carrear bedankt sich. 
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  9. #9
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Okay, also ich hab die meisten Fehler jetzt weg bekommen. Die meisten kamen deshalb zustande, dass ich alle JS Dateien auf allen Seiten eingebunden hatte, auch wenn es nicht nötig war und dann haben dem Browser die passenden Objekte gefehlt.

    Jetzt habe ich noch 2 Probleme. Nummer 1 ist, dass er mir einen Fehler in diesem Bereich einer JS Datei anzeigt ( Das {W ist die Stelle an der mir die Fehlerkonsole das Problem anzeigt) - Fehlermeldung lautet " 'undefined' ist Null oder kein Objekt " :

    Code :
    1
    2
    
    var L=0;
    function z(W,V)[B]{W[/B]._id=W._id||(W.id==l?"_fc"+L++:W.id+"");
    Viele Grüße
     

  10. #10
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Das heist das die Funktion z, welcher 2 Parameter übergeben werden, W und V, einen Fehler wirft. W ist nicht definiert, das heist du musst herausfinden wo die Funktion z aufgerufen wird um herauszufinden was als W übergeben wird. in welcher datei befindet sich diese Funktion denn? Gibt es womöglich eine unkomprimierte Version?
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  11. #11
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Ich würde dir gerne die ganze Datei senden, aber wenn ich die in meinem Programm öffne, ist einfach alles in eine Zeile geschrieben Ich hänge sie mal an.
    Angehängte Dateien Angehängte Dateien
     

  12. #12
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Das mit der Zeile ist normal, die Datei ist komprimiert(minified, deshalb das .min) im header stand aber die Adresse des Plugins, lade dir von hier: http://arshaw.com/fullcalendar/download/ mal die 1.4.3 zip herunter und nutze die fullcalender.js nicht die .min.js.(auch den Aufruf in der html nicht vergessen , dadurch können wir besser debuggen.
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  13. #13
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Okay, jetzt zeigt er mir den Fehler an einer ganz anderen Stelle an (4 Zeile : event ...) Fehlermeldung bleibt die gleiche.

    Code :
    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
    
    var fakeID = 0;
     
    function normalizeEvent(event, options) {
        event._id = event._id || (event.id == undefined ? '_fc' + fakeID++ : event.id + '');
        if (event.date) {
            if (!event.start) {
                event.start = event.date;
            }
            delete event.date;
        }
        event._start = cloneDate(event.start = parseDate(event.start));
        event.end = parseDate(event.end);
        if (event.end && event.end <= event.start) {
            event.end = null;
        }
        event._end = event.end ? cloneDate(event.end) : null;
        if (event.allDay == undefined) {
            event.allDay = options.allDayDefault;
        }
        if (event.className) {
            if (typeof event.className == 'string') {
                event.className = event.className.split(/\s+/);
            }
        }else{
            event.className = [];
        }
    }
     

  14. #14
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Die Datei enthält ja auch im endeffekt dasselbe, nur formatiert und besser benannt

    suche mal nach dem Aufruf von: addEventSource der Parameter der da übergeben wird dürfte für den Fehler sorgen.
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

  15. #15
    Carrear Carrear ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Lehrte bei Hannover
    Beiträge
    435
    Dazu habe ich folgendes gefunden:

    Code :
    1
    2
    3
    4
    5
    6
    
    addEventSource: function(source) {
                    eventSources.push(source);
                    fetchEventSource(source, function() {
                        eventsChanged();
                    });
                },
     

Ähnliche Themen

  1. JavaScripte stören sich gegenseitig
    Von Sprint im Forum Javascript & Ajax
    Antworten: 11
    Letzter Beitrag: 06.07.10, 17:13
  2. Fehlfunktion des SCRIPTS: <a href="javascript:window.back()">
    Von lusthansa im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 15.08.09, 16:28
  3. Antworten: 8
    Letzter Beitrag: 24.07.09, 07:16
  4. Antworten: 6
    Letzter Beitrag: 18.05.09, 07:24
  5. Antworten: 4
    Letzter Beitrag: 18.09.03, 10:57