php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.09.2011, 21:21  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard Trotz Eventlistener könne nicht mehrere Funktionen ausgeführt werden

Guten Abend,

ich bin mittlerweile grad am verzweifeln.
Ich habe mehrere Javascriptfunktionen die mittels Eventlistener im window.onload Objekt aufgerufen werden. Aber ich kann immer nur die erste Funktion anwenden, dass heißt die, die an erster Stelle steht.

Keine Funktion hat gleiche Variablennamen.

Wie kann ich das machen das alle Funktionen ausgeführt werden können, jenachdem welche gebraucht wird.

Hier mein Code.

Code:
window.onload = function () {

                if(document.addEventListener) {
                    document.getElementById("slider").addEventListener(
                        "mouseover",
                        slider,
                        false
                    );

                    document.getElementById( "zipCode" ).addEventListener(
                        'keyup',
                        setRequestForCitySearch,
                        false
                    );

                    document.getElementById( "zipAndCity" ).addEventListener(
                        'click',
                        selectCity,
                        false
                    );
                } else {
                    // hier kommen die eventlistener für ie rein
                    // mit attachEvent
                }
}
Hier kann ich nur den ersten ausführen. Tausche ich die Listener aus und das zipAndCity steht an erster Stelle dann kann ich die Funktion ausführen aber meinen Slider nicht mehr.

Was mache ich falsch?

Danke für eure Hilfe Mfg der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.09.2011, 08:41  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

da ich derzeit noch sehr wenig von Javascript weiß, kann ich dir nicht sagen, was du falsch machst - auch wenn ich vermute, dass nach Funktionsaufruf das Event wohl "weg ist" ...

Daher : rufe doch anstelle deiner EventListener eine Hilfsfunktion auf, die dann ihrerseits alle deine "alten EventListener" als normale Funktionen aufruft. Du musst denen dann ja "nur noch" das zwischengespeicherte Event mitgeben
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 27.09.2011, 08:59  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Du meinst also in jeder JS Datei wo meine bestimmten Funktionen drin sind, noch eine Helper Funktion z.B. loadEventsSlider() und loadEventsAutocomplete();.
Und da drin dann meine Events zu dem bestimmten Javascript listen und die Funktion dann im window.onload Objekt aufrufen ala

Code:
window.onload {
    loadEventsSlider();
    loadEventsAutocomplete();
}
Habe ich dich da in etwas so richtig verstanden?
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 27.09.2011, 15:45  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Kann man sich das irgendwo live anschauen?
xm22 ist offline   Mit Zitat antworten
Alt 27.09.2011, 15:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

1.) Kann es sein, dass die Funktionen noch Parameter benötigen
2.) Liefern die Funktionen vielleicht false zurück (k.A. ob relevant)
3.) Mal die Fehlerkonsole benutzt? Irgendwelche Meldungen?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 27.09.2011, 15:53  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
Kann man sich das irgendwo live anschauen?
Nein leider noch nicht das ist alles noch in der offline Entwicklung und geht erst online wenn der Kunde einen Webspace oder VServer hat.
Kann leider nur damit dienen.
Kann auch die ganzen Funktionen etc. hier posten heute Abend, aber das recht viel an Code und ich will ne unbedingt das an dem Code rumdiskutiert wird.
Der funktioniert ja wenn ich das alles schön einzeln aufrufe, nur wie hier im Thread gezeigt geht immer die Funktion die als erstes im Listener steht.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 27.09.2011, 17:08  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zeig uns doch ein reduziertes Beispiel auf jsfiddle.net Evtl fällt dir beim Reduzieren schon der Fehler auf
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 28.09.2011, 08:18  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Zeig uns doch ein reduziertes Beispiel auf jsfiddle.net Evtl fällt dir beim Reduzieren schon der Fehler auf
Guten Morgen, dass werde ich heute Abend gleich mal machen, dass jsfiddle.net kannte ich noch gar nicht.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 28.09.2011, 18:23  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

So nun zu Hause und mal eagle275 sein Tipp probiert so wie ich ih n verstanden habe und das gleiche Ergebnis.

Hier mal meine JS Slider Funktion.
Code:
var sliderWidth = null;
var km = null;
var kmErg = null;
var x = null;
var y = null;

var slider = function (pEvent) {
    pEvent = pEvent || window.event;
    var target = pEvent.target || pEvent.srcElement;
    var posLeft = target.offsetLeft;
    sliderWidth = target.width;
    
    if ( pEvent.pageX && pEvent.pageY ) {
        x = pEvent.pageX;
        y = pEvent.pageY;
    } else {
        x = pEvent.clientX + ( document.body.scrollLeft + document.body.parentNode.scrollLeft );
        y = pEvent.clientY + ( document.body.scrollTop + document.body.parentNode.scrollTop );
    }
    
    xInt = parseInt((x - posLeft));
    
    if(xInt == 199) {
        km = 200;
    } else {
        km = xInt;
    }
    
    kmErg = (km / 2);
    
    document.getElementById("slider").onmousedown = slideRegulatorPosition;
    document.getElementById('slider').onmousemove = slider;
    document.getElementById("slider").onmouseup = filledKmField;
}

var slideRegulatorPosition = function(pEvent) {
    pEvent = pEvent || window.event;
    var target = pEvent.target || pEvent.srcElement;
    var posTop = target.offsetTop;
    var posLeft = target.offsetLeft;
    document.getElementById("slide_regler").style.position = "absolute";
    document.getElementById("slide_regler").style.left = (x) + "px";
    document.getElementById('uk').value = parseInt(kmErg);
//    alert(parseInt(kmErg));
}

var filledKmField = function(pEvent) {
    pEvent = pEvent || window.event;
    var target = pEvent.target || pEvent.srcElement;
//    alert(parseInt(kmErg));
    document.getElementById('uk').value = parseInt(kmErg);
}

function loadSlider(pEvent)
{
    if(document.addEventListener) {
        document.getElementById("slider").addEventListener("mouseover", slider, false);
    } else {
        document.getElementById("slider").attachEvent("onmouseover", slider);
    }
}
Und das ist meine AutoComplete Funktion für Plz City Felder.

Code:
function setRequestForCitySearch () {
    var ajaxRequest = new createXMLHttpRequest();
    var zipValue = document.getElementById( "zipCode" ).value;
    var requestString = "?zip=" + zipValue;
    
    if ( zipValue.length > 2 ) {
    //document.getElementById( "testShow" ).lastChild.nodeValue = zipValue;
    ajaxRequest.onreadystatechange = function () {
        
        if ( this.readyState == 4 && this.status == 200 ) {
            
            if ( zipValue.length > 2 ) {
                document.getElementById( "zipAndCity" ).style.display = "block";
                document.getElementById( "zipAndCity" ).innerHTML = ajaxRequest.responseText;
            } else {
                document.getElementById( "zipAndCity" ).style.display = "none";
                document.getElementById( "cityName" ).value = '';
            }
        }
    }
        
    ajaxRequest.open( "GET", "Classes/readPlzData.php" + requestString );
    ajaxRequest.send( null );
    }
}

/*
*
*    funktion w�hlt datensatz aus den funden aus
*
*/
var selectCity = function ( pEvent ) {
    pEvent = pEvent || window.event;
    var target = pEvent.target || pEvent.srcElement;
    var zipCity = target.lastChild.nodeValue.split( " " )[0];
    var city = target.lastChild.nodeValue.substring( zipCity.length, target.lastChild.nodeValue.length );
    var zipId = target.parentNode.firstChild.nextSibling.lastChild.nodeValue;
    
    document.getElementById( "plzCode" ).value = zipId;
    document.getElementById( "zipCode" ).value = zipCity;
    document.getElementById( "cityName" ).value = city;
    document.getElementById( "zipAndCity" ).style.display = "none";
}

function loadCitySearch(pEvent) {
    if(document.addEventListener) {
        document.getElementById( "zipCode" ).addEventListener('keyup', setRequestForCitySearch, false);
        document.getElementById( "zipAndCity" ).addEventListener('click', selectCity, false);
    } else {
        document.getElementById( "zipCode" ).attachEvent('keyup', setRequestForCitySearch);
        document.getElementById( "zipAndCity" ).attachEvent('click', selectCity);
    }
}
Und so rufe ich das nun im Window.Onload Objekt in der Index im Header auf.

Code:
window.onload = function () {

                loadSlider();
                loadCitySearch();
}
Und es wird wieder nur die erste Funktion ausgeführt die an erster Stelle steht, die andere danach kann ich schon nicht mehr ausführen.

Kann mir das jemand erklären bitte und nen Rat geben wie ich es machen kann das es funktioniert?

Danke euch Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 28.09.2011, 18:32  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wieso setzt Du denn in einem Event-Handler andere Events?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] UPDATE wird trotz if clause vor SELECT ausgeführt Slithers Datenbanken 2 10.06.2009 16:13
[Erledigt] PHP - MySQL Script wird trotz exit ausgeführt Datenbanken 5 21.01.2006 12:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php viele funktionen, nextsibling.nodevalue.split select javascript, javascript mehrere funktion werden nicht ausgeführt, ein eventlistener zwei funktionen, mehrere funktionen javascript window.onload, javascript classe eventlistener, eventlistener geht nur beim ersten mal, hilfsfunktionen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum