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 18.08.2008, 16:11  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard [Erledigt] Div-Box ausblenden, wenn klick nicht in Div-Box und Inputfeld

Tach nochmal,

Hintergrund:

Habe mir einen kleinen AutoCompleter gebastelt. Hierzu habe ich ein Eingabefeld, und darunter dann eine Div-Box, welche dynamisch mit den gefundenen Werten gefüllt wird.


Code:
      <input type="text" id="where" name="where_inp" autocomplete="off" style="width:300px;" onkeyup="loadWhere();" />            
      <div id="where_div" class="autocomplete"></div>
Hierbei habe ich eine Problematik, wo ich irgendwie nicht zu einer Lösung komme und hoffe ihr habt Anregungen oder könnt mich auf die richtige Bahn bringen.

Ich möchte die eingeblendete Div-Box ausblenden, wenn man ausserhalb der Div-Box oder des Input-Feldes klickt. Drum dacht ich, ich mach ein onblur="hideMyBox();" in mein Textfeld.

Da hab ich aber das Problem, wenn ich meinen Fund in der Div-Box auswähle (also Klicke), geht er ja vorher aus dem Textfeld, und so greift der Eventhandler onblur und macht meine Box weg, bevor der ausgewählte Wert in das Input-Feld übertragen werden konnte.

Weiss jemand, wie ich das umgehen kann? Kann ich irgendwie herausfinden, in welchem HTML-Element geklickt wurde?

Denn wie gesagt, die Box soll nur ausgeblendet werden (display=none), wenn man ausserhalb des Inputfeldes bzw. der Box klickt.

Ich möchte ungern jedes andere HTML-Element auf meiner Seite ein onclick="
hideMyBox();" erweitern. Oder geht sowas dynamisch? Wäre bestimmt dann auch sehr unschön

Danke für eure Hilfe ich weiss nicht weiter und finde keine hilfreichen Lösungen (oder sonst irgendeine Richtung, die ich einschlagen könnte )

Grüße
Das Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.08.2008, 16:58  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Wenn du sowieso schon Prototype verwendest, warum nimmst du dann nicht einfach einen der fertigen "Autocompleter". Z.b. diesen von script.aculo.us:
script.aculo.us - web 2.0 javascript demos

Wenn du das nicht möchtest kannst du dort immernoch nachschauen, wie die das gelöst haben
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 18.08.2008, 17:49  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Falls du das Script selber fertig schreiben willst:

Über das Event Object kannst du auf das Ursprungs-Element des Events schliessen.
Im IE ist das
Code:
window.event.srcElement
und in Gecko-Browsern
Code:
event.target
. Damit das ganze in den Gecko-Browsern funktioniert, musst du natürlich das Event Object mit an die Funktion übergeben, wo der click verwertet wird.
Dort arbeitest du dich dann halt durch den DOM Baum nach oben (parentNode) und überprüfst, ob eines der Elternelemente dein DIV ist (ID-Vergleich oder Node-Vergleich). Wenn ja, dann wurde auf einen der Vorschläge im AutoCompleter geklickt.
Montellese ist offline   Mit Zitat antworten
Alt 19.08.2008, 12:20  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von agrajag Beitrag anzeigen
Wenn du sowieso schon Prototype verwendest, warum nimmst du dann nicht einfach einen der fertigen "Autocompleter". Z.b. diesen von script.aculo.us:
script.aculo.us - web 2.0 javascript demos

Wenn du das nicht möchtest kannst du dort immernoch nachschauen, wie die das gelöst haben
Den hatte ich auch schon im Blick, aber der Projektleiter wollte, dass ich den Autocompleter selber erstelle (wahrscheinlich, damit ich in JS fitter werde *g*).

Aber dass ich darauf nicht selber kam, da mal nachzuschauen, werd ich nachholen

Danke für den Hinweis @ Montellese, werd ich mir gleich mal heut Nachmittag anschauen, genauso wie den Tip von agrajag.

Also danke euch beiden, ich berichte neues (und wenn Lösung vorhanden, diese selbstverständlich auch)

Grüße
Das Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline   Mit Zitat antworten
Alt 19.08.2008, 15:16  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Folgende Lösung habe ich jetzt mal

Code:
[...]
    <script type="text/javascript">   
      function hideACWhere(e) {
        var eve = e.target ? e.target : e.srcElement;          
        if(eve.parentNode.parentNode == null || eve.parentNode.parentNode.id != 'where_div') {                    
          $('where_div').style.display = 'none';  
        }
      }  
    </script>  
  </head>
  <body onclick="hideACWhere(event)">
[...]
Scheint gut zu klappen

Grüße
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle 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
JS-Tooltip ausblenden Freeaak JavaScript, Ajax und mehr 2 07.08.2008 13:14
[Erledigt] Zeigen Und verstecken durch ein Klick errox JavaScript, Ajax und mehr 12 07.06.2008 19:22
input inhalt bei klick ändern jar3d HTML, Usability und Barrierefreiheit 3 10.01.2008 16:33
Mehrere div's mit gleichen ID anzeigen / ausblenden phpbeginner HTML, Usability und Barrierefreiheit 9 06.09.2007 02:48
JS: Mit einen Link boxen sichtbar und unsichtbar durch klick scooter Beitragsarchiv 3 11.03.2006 19:34
Layer ein- und ausblenden GN HTML, Usability und Barrierefreiheit 2 24.08.2005 23:28
Bildwechsel beim Klick HTML, Usability und Barrierefreiheit 1 12.07.2005 23:49
[Erledigt] durch Klick auf Text anderen Text einblenden HTML, Usability und Barrierefreiheit 3 03.07.2005 14:41
Text per Klick in Textarea einfügen Abhängig von Radiobutton 18inch HTML, Usability und Barrierefreiheit 1 09.05.2005 11:22
Auf den Klick in eine Checkbox reagieren workaholic HTML, Usability und Barrierefreiheit 1 21.03.2005 15:34
Text in Input per Klick hinzufügen, bei erneutem Klick lösch 18inch HTML, Usability und Barrierefreiheit 2 05.03.2005 14:01
inputfeld soll integer sein PHP Tipps 2005 9 17.01.2005 17:10
Fehlerausgabe ausblenden Datenbanken 2 02.11.2004 12:30
ADCELL Vermarktung zu 75% Pay per Klick Kampagnen Beitragsarchiv 0 18.10.2004 12:37
SQL Dumb per klick PHP Tipps 2004 7 23.09.2004 22:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php div ausblenden, prototype div einblenden, div box verstecken, div box ausblenden, prototype div ausblenden, div ein und ausblenden, prototype ausblenden, javascript click outside div, php div ein und ausblenden, div box schließen, div box einblenden ausblenden, div boxen verstecken, div box ein und ausblenden, http://www.php.de/javascript-ajax-und-mehr/46789-erledigt-div-box-ausblenden-wenn-klick-nicht-div-box-und-inputfeld.html, div box einblenden, div ausblenden php, javascript div ausblenden klick außerhalb, div ein und ausblenden php, php box ausblenden, div boxen ausblenden

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