Come chiudere popovers Bootstrap (o qualsiasi elemento in generale), quando un utente fa clic lontano da esso?

StackOverflow https://stackoverflow.com/questions/9302654

  •  25-10-2019
  •  | 
  •  

Domanda

Sto utilizzando l'oggetto popover dalla libreria Bootstrap di Twitter in modalità manuale e mi chiedevo come avrei dovuto fare per chiudere il suggerimento quando l'utente fa clic lontano da esso.

Ecco il mio HTML:

<a id="stats-bar" rel="popover" data-placement="top" data-trigger="manual" data-title="Title here" data-content="Hello everyone.">Test</a>

e la mia JavaScript:

$('#stats-bar').click(function(e) {
        $(this).popover('show');
});

Come posso nascondere il popover quando l'utente fa clic ovunque, ma la popover in sé? Ho pensato di utilizzare un div trasparente fissato dietro la popover e impostare l'evento click, ma non sono sicuro che è il modo migliore.

È stato utile?

Soluzione 2

ho optato per utilizzare un div trasparente fissato dietro la popover e impostare l'evento click come questa sembra la soluzione più robusta e semplice.

Altri suggerimenti

ho finito per il cablaggio fino alla manifestazione del documento click e nascondere qualsiasi tooltip a quel punto

      $(document).click(function (e)
      {
          // check the parents to see if we are inside of a tool tip.  If the click came
          // from outside the tooltip, then hide our tooltip
          if ($(e.target).parents('.tooltip').length == 0) $('[data-original-title]').tooltip('hide');
      });

Se si utilizza l'opzione di attivazione manuale e il cablaggio fino alla manifestazione Clicca per vedere il tooltip è necessario chiamare e.stopPropagation () per impedire l'evento documento click da sparare quando mostra la descrizione comando.

Che dire di un generico click listener di eventi che trigger dove mai si fa clic all'interno del corpo? Dai un'occhiata a questo post, è simile a quello che si sta cercando di raggiungere.

https://stackoverflow.com/a/2125122/1013422

Si potrebbe utilizzare questo per chiudere la popover reale

$('#stats-bar').popover('hide')

Lo definirei solo la funzione quando viene eseguito l'evento pop-up e quindi rimuovere una volta che hai chiuso il popup, in questo modo non si è costantemente in ascolto per eventi click.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top