Ciao a tutti,
avrei 3 domande per capire meglio la logica di preventDefault.

Ho un form di registrazione, sul quale dando il focus su ogni input,
viene aperta una speech bubble di fianco con le indicazioni.

Un evento blur su ogni input chiude la bubble corrispondente.

Ho passato un'intera giornata per capire come evitare che la bubble si chiudesse cliccandoci sopra.
Ovvero il blur doveva funzionare dappertutto tranne che sulla bubble.

Ne ho provate diverse finchè provando questa ho notato che funzionava:

codice:
$(".bubble_username").mousedown(function(event){
        event.preventDefault();        
    });


In effetti il blur dell'input non viene scatenato e quindi la nuvoletta resta aperta finchè non clicco da qualche altra parte.
La perdita del fuoco dell'input non avviene probabilmente perchè non si scatena il focus sulla nuvoletta.

1) Sapete dirmi perchè così invece non funziona?

codice:
$(".bubble_username").click(function(event){
        event.preventDefault();        
    });
Se provo il focus in effetti è disabilitato!
Se provo il click invece è attivo.

2) Cosa va a disattivare allora preventDefault su mousedown oltre al focus??

3) Come avrei potuto sapere a priori senza fare decine di prove che il preventDefault su mousedown disabilitava il focus?

Ho visto che il mousedown è il primo evento che si scatena al click del mouse, però non capisco come mai pur disattivandolo, il click continua a funzionare.

Grazie a tutti per l'aiuto.
Andrea