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 29.08.2011, 14:27  
Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 50
PHP-Kenntnisse:
Anfänger
Karottenkopf51 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ich komm einfach nicht weiter und kapiere das nicht.

Code:
<body id="general_body" onClick="bodyCloseAll();">
Nun ein anderer Ansatz, da ich den Text von dem Link oben nicht verstehe.

Code:
function fCancelBubble(event){
	event.cancelBubble = true;
}

function bodyCloseAll(){
	var bodyVar = document.getElementById("general_body");
	if(bodyVar.addEventListener){
		bodyVar = addEventListener("click", fCancelBubble(event), false);
		setOptionsHidden();
	}
}
Soll das Bubbling verhindern (sprich, ich löse nur das Event von den Divs aus und nicht das vom Body, wenn ich auf das Div klicke).

Ich bin am Verzweifeln.

Geändert von Karottenkopf51 (29.08.2011 um 14:31 Uhr).
Karottenkopf51 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.08.2011, 14:55  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Hast du ChrisBs Post ignoriert?

target = HTMLElement
target.id = Id des HTMLELements

Das sind JS Grundlagen, da braucht man nicht "verzweifeln".

http://de.selfhtml.org/javascript/ob...mlelemente.htm
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 29.08.2011, 15:16  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Code:
<body id="general_body" onClick="bodyCloseAll();">
Mit einem Funktionsaufruf im onclick-Attribut bekommst du den Event-Parameter nicht.

Code:
function bodyCloseAll(){
	var bodyVar = document.getElementById("general_body");
	if(bodyVar.addEventListener){
		bodyVar = addEventListener("click", fCancelBubble(event), false);
		setOptionsHidden();
	}
}
Den Event Handler (bodyCloseAll) stattdessen mit addEventListener() an <body> zu binden ist zwar die richtige Alternative zum onclick-Attribut aber das ist etwas, was direkt beim Laden geschehen muss und nicht in der Funktion selbst. Abgesehen davon dass die zitierte Funktion an sich überhaupt keinen Sinn ergibt, da fällt mir nichtmal ein Korrekturvorschlag ein...
fab ist offline   Mit Zitat antworten
Alt 29.08.2011, 17:17  
Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 50
PHP-Kenntnisse:
Anfänger
Karottenkopf51 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von Dark Guardian Beitrag anzeigen
Hast du ChrisBs Post ignoriert?

target = HTMLElement
target.id = Id des HTMLELements

Das sind JS Grundlagen, da braucht man nicht "verzweifeln".

http://de.selfhtml.org/javascript/ob...mlelemente.htm
Wenn ich durch JS mein Geld verdienen würde, würde ich wohl kaum eine solche Frage stellen. Und wie du den Zeiten meiner Beiträge entnehmen kannst, habe ich mich sehr wohl damit beschäftigt. Grundlagen sind für mich der 'einfache' Umgang mit Handlern, sprich onClick ruft eine Funktion auf und fertig. Durch den Thread bin ich ERSTMALS darauf gekommen, wie sich die Problematik nennt und habe mir verschiedene Anleitungen zu Bubbling durchgelesen. Wenn ich es kapiert hätte, würde ich wohl kaum eure Zeit verschwenden. Und ja, ich habe jede einzelne Antwort hier gelesen und wie es scheint bin ich einfach zu dämlich um dieses einfache Problem zu lösen, das muss man mir nicht noch mehrfach unter die Nase reiben. Ich habe dieses Forum schon in verschiedenen Fällen zu schätzen gelernt, allerdings ist es meiner Meinung nach nicht der Sinn eines Forum nur auf Bereits-geschriebenes zu verweisen, so weit war ich nämlich auch schon. Danke für deine Antwort.

Zitat:
Zitat von fab Beitrag anzeigen
Code:
<body id="general_body" onClick="bodyCloseAll();">
Mit einem Funktionsaufruf im onclick-Attribut bekommst du den Event-Parameter nicht.

Code:
function bodyCloseAll(){
	var bodyVar = document.getElementById("general_body");
	if(bodyVar.addEventListener){
		bodyVar = addEventListener("click", fCancelBubble(event), false);
		setOptionsHidden();
	}
}
Den Event Handler (bodyCloseAll) stattdessen mit addEventListener() an <body> zu binden ist zwar die richtige Alternative zum onclick-Attribut aber das ist etwas, was direkt beim Laden geschehen muss und nicht in der Funktion selbst. Abgesehen davon dass die zitierte Funktion an sich überhaupt keinen Sinn ergibt, da fällt mir nichtmal ein Korrekturvorschlag ein...
Die Funktion war experimentell (so wie alles andere zuvor auch). Danke für die Erklärung, werde mich morgen nochmal intensiver dransetzen und ggf. nochmal etwas dazuschreiben.
Karottenkopf51 ist offline   Mit Zitat antworten
Alt 29.08.2011, 19:15  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von Karottenkopf51 Beitrag anzeigen
Wenn ich durch JS mein Geld verdienen würde, würde ich wohl kaum eine solche Frage stellen. Und wie du den Zeiten meiner Beiträge entnehmen kannst, habe ich mich sehr wohl damit beschäftigt. Grundlagen sind für mich der 'einfache' Umgang mit Handlern, sprich onClick ruft eine Funktion auf und fertig. Durch den Thread bin ich ERSTMALS darauf gekommen, wie sich die Problematik nennt und habe mir verschiedene Anleitungen zu Bubbling durchgelesen. Wenn ich es kapiert hätte, würde ich wohl kaum eure Zeit verschwenden.
Es geht nicht um das Bubbling. Das ist nicht unbeidngt Grundlagenwissen.

Das Event stellt dir ein HTML Element zur Verfügung, damit kannst du nichts anfangen und weisst auch nicht wie du auf seine Eigenschaften/Attribute zugreifst. DAS sind Grundlagen.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 29.08.2011, 19:29  
Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 50
PHP-Kenntnisse:
Anfänger
Karottenkopf51 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Wir können jetzt noch weiter darüber diskutieren was ich beherrsche und was nicht, oder wir können uns auf eine Lösung konzentrieren. Ich wusste nicht, dass mir das Event ein Element zur Verfügung stellt, daher der wirre Code. Wie man mit JS auf Elemente zugreift, die man zuvor mit getElementByID oder Name ausgelesen hat, weiß ich sehr wohl.
Karottenkopf51 ist offline   Mit Zitat antworten
Alt 29.08.2011, 19:54  
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

Vielleicht verstehst dus per jQuery:

PHP-Code:
$(window).click( function ( ev ) {
  if( $( 
ev.target ).attr('id')  != "foo" ) {
    
// doSth();
  
}
}); 
Ich würde dir dringend raten, irgendein Framework herzunehmen.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 30.08.2011, 06:52  
Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 50
PHP-Kenntnisse:
Anfänger
Karottenkopf51 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Vielleicht verstehst dus per jQuery:

PHP-Code:
$(window).click( function ( ev ) {
  if( $( 
ev.target ).attr('id')  != "foo" ) {
    
// doSth();
  
}
}); 
Ich würde dir dringend raten, irgendein Framework herzunehmen.
Vielen Dank, das funktioniert super. Habe es folgendermaßen abgeändert, damit das Ganze für mehrere Elemente gilt:
PHP-Code:
$(window).click( function ( ev ) {
        if( $( 
ev.target ).attr('class')  != "do_not_hide" ) {
            
setOptionsHidden();
        }
    }); 
Karottenkopf51 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
Slimbox bei Klick auf Bild schließen d0t JavaScript, Ajax und mehr 3 28.02.2011 19:16
Sicherheitslücke im PHP schließen ???? ben-NRW Scriptbörse 8 14.07.2010 16:58
Mit JS einen KLICK vortäuschen ITrun90 JavaScript, Ajax und mehr 10 04.05.2010 13:47
Link auf Dateien außerhalb des Document Root michael2105 PHP-Fortgeschrittene 9 24.04.2010 22:07
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
Scriptangebot 1 Klick Counter Hosting Script Charbel Scriptbörse 0 23.06.2009 07:43
[Erledigt] per klick (außerhalb vom div) funktion aufrufen amateur_php JavaScript, Ajax und mehr 9 17.10.2008 14:32
[Erledigt] div per Drag&amp;amp;amp;Drop verschieben und bei Klick ausserhalb s Juuro HTML, Usability und Barrierefreiheit 2 11.01.2008 12:30
input inhalt bei klick ändern jar3d HTML, Usability und Barrierefreiheit 3 10.01.2008 16:33
Fenster schließen und neu öffnen lassen max-dhom HTML, Usability und Barrierefreiheit 2 01.04.2007 20:55
Frame schließen und [Erledigt] Div bei Klick außerhalb von Div schließen workaholic HTML, Usability und Barrierefreiheit 2 06.09.2005 13:36
Bildwechsel beim Klick HTML, Usability und Barrierefreiheit 1 12.07.2005 23:49
Text in Input per Klick hinzufügen, bei erneutem Klick lösch 18inch HTML, Usability und Barrierefreiheit 2 05.03.2005 14:01
ADCELL Vermarktung zu 75% Pay per Klick Kampagnen Beitragsarchiv 0 18.10.2004 12:37
fenster "resizen" nach dem schließen PHP Tipps 2004 1 29.09.2004 15:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery außerhalb eines div click, javascript onclick ausserhalb, jquery click ausserhalb eines div, javascript onclick außerhalb des divs, 2 div schließen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:23 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