Eén trigger blokkeert de ander.

Status
Niet open voor verdere reacties.

ErikBooy007

Terugkerende gebruiker
Lid geworden
24 mei 2007
Berichten
3.814
Ik zal een poging doen om mijn probleem duidelijk uit te leggen :confused:

Ik heb een input-veld met een autocomplete functie:

autocomp.png


In de links in de autocomplete-"ballon" zit een verwijzing naar een JS-functie die de inhoud van de link in het invulveld plaatst. De functie werkt.

Er is echter een probleem. Ik heb ingesteld dat de ballon verdwijnt onblur van het inputveld, en als je nu op een link in de ballon klikt, wordt eerst de onblur getriggered, waardoor de ballon verdwijnt en dan is de link er dus niet meer en wordt er dus ook geen functie uitgevoerd.

Wat o wat kan ik hier aan doen? ;)

[EDIT]
Als iemand een manier weet waarmee ik de ballon kan verbergen zonder van onblur gebruik te maken zou ik ook al erg geholpen zijn.
[/EDIT]
 
Laatst bewerkt:
Zover ik weet heeft het onblur event geen relatedTarget property of iets dergelijks.
Dan denk ik dat de makkelijkste weg het ertussen plaatsen van een delay (setTimeout ) is.

De call functie van het onblur event roept een setTimeout aan die de functie aanroept die het wolkje laat verdwijnen.
 
Ik heb het ondertussen zo opgelost dat de ballon automatisch verdwijnt als je op een naam klikt. Voor als je dat niet wilt staat er een knop "verbergen" onderin.

Als ik meer tijd heb, ga ik zeker jouw oplossing proberen, toch iets gebruiksvriendelijker ;)

In ieder geval heel hartelijk bedankt! :D
 
Is het mischien een idee om bij een onmouseover van je ballon-geval de event listener te killen? Dus zoiets:

[JS]addEvent(invoerveld, 'blur', haalBallonWeg);

addEvent(ballon, 'mouseover', haalBallonEventWeg);

addEvent(ballon, 'mouseout', zetBallonEventTerug);[/JS]
en dan de functie-namen (haalBallonWeg, haalBallonEventWeg, zetBallonEventTerug) laten doen wat de naam implied.



Even wat duidelijker:
Zolang de muis in de ballon 'zit', wordt de blur van het invoerveld niet getriggered als er uit het veld wordt gekloot. Wordt de muis 'uit' de ballon gehaald, wordt de blur weer aangezet, en kan er niet meer woren gekloot.​


:thumb:
 
Laatst bewerkt:
Vegras, heeft iemand je wel eens verteld dat je een genie bent? Dit is in principe echt een topoplossing, maar er is een puntje...

Ik kan bij de mouseout wel weer een eventlistener voor de blur toevoegen, maar, als ik op een leeg plekje in de ballon zou klikken, dan is het element al "geblurred", dus verdwijnt de ballon niet meer als ik ergens anders op de pagina klik.

Snap je wat ik bedoel? (kan het niet echt goed uitleggen ;))
 
Heh, nope. Dank je :p

maar, als ik op een leeg plekje in de ballon zou klikken, dan is het element al "geblurred"
hmm, ik volg het niet helemaal, maar dit klinkt als een oplossing voor... NOGMEER event handlers :p

[JS]addEvent(ballon, 'click', zetFocusNaarInvoer);

function zetFocusNaarInvoer = function()
{
document.getElementById('invoerding').focus();
}[/JS]echt extreem lelijk (en waarschijnlijk onlogisch) maar ik denk dat het mischien wel werkt.

Heb je toevallig een voorbeeld online oid?

[edit]wacht even, die click() zorgt mischien voor niet-werkende links in je ballon, maar dat weet ik niet zeker...[/edit]

:thumb:
 
Laatst bewerkt:
Na weer eens een halve dag zonder internet te hebben gezeten (en dus veel hebben kunnen prutsen), heb ik er inderdaad voor gekozen om de focus programmatisch te herstellen.

Echter niet door een event-handler, maar in de functie die de tekst in het vak zet.

Niels, je wordt weer eens heel hartelijk bedankt!! :D:D Wat moest ik toch zonder je ;)
 
xD

(happy to help, that is)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan