Bootstrap 3.0 Popovers e tooltip


84

Sono nuovo in Bootstrap e ho problemi a far funzionare le funzioni popover e tooltip. Non ho avuto problemi con i drop down e i modelli ma mi sembra che manchi qualcosa per il popover e le descrizioni comandi.

Ricevo suggerimenti per la visualizzazione, ma non hanno lo stile e non si trovano come gli esempi di bootstrap. E il popover non funziona affatto.

Dai un'occhiata e fammi sapere cosa mi sto perdendo.

       <!DOCTYPE html>
    <html>
      <head>
        <title>Bootstrap 101 Template</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!-- Bootstrap -->
        <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
        <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet" media="screen">
        <link href="css/font-awesome.min.css" rel="stylesheet" media="screen">
        <link href="css/index.css" rel="stylesheet" media="screen">
        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
          <script src="../../assets/js/html5shiv.js"></script>
          <script src="../../assets/js/respond.min.js"></script>
        <![endif]-->
      </head>
      <body>
       <p id="tool"class="muted" style="margin-bottom: 0;">
        Tight pants next level keffiyeh
        <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.</p>
       <h3>Live demo</h3>
        <div style="padding-bottom: 24px;">
          <a id="pop" href="#" class="btn btn-lg btn-danger" data-toggle="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a>
        </div>

        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="http://code.jquery.com/jquery.js"></script>
        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script type="text/javascript">
            $(document).ready(function() {

                $('.tool').tooltip();
                $('.btn').popover();

            }); //END $(document).ready()

        </script>

        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap.min.css"></script>

      </body>

    </html>

Ho appena postato la stessa domanda pochi minuti fa, anche usando BS3 con tutto il resto che funziona come Modals e Tabs ma nessun Tooltips o Popover ... ti aggiornerò se dovessi trovare qualcosa.
— xXPhenom22Xx

per il popover, le opzioni non sono definite
— Cybermaxs

Per ora stavo solo cercando di ottenere il comportamento predefinito, ma sono interessato a farlo visualizzare al passaggio del mouse anziché al clic, ma quello era il prossimo. Devo ancora inserire qualcosa per le opzioni?
— user2560895

Il codice sopra è quello che sto utilizzando attualmente e non funziona ancora. Eventuali suggerimenti? Ho qualcosa nell'ordine sbagliato o qualcosa del genere?
— user2560895

Risposte:


147

Si scopre che Evan Larsen ha la risposta migliore . Si prega di votare la sua risposta (e / o selezionarla come risposta corretta): è geniale.

Lavorare jsFiddle qui

Usando il trucco di Evan, puoi istanziare tutti i suggerimenti con una riga di codice:

$('[data-toggle="tooltip"]').tooltip({'placement': 'top'});

Vedrai che tutti i suggerimenti nel tuo paragrafo lungo hanno suggerimenti funzionanti con una sola riga.

Nell'esempio jsFiddle (collegamento sopra), ho anche aggiunto una situazione in cui un suggerimento (tramite il pulsante Accedi) è attivo per impostazione predefinita. Inoltre, il codice del tooltip è AGGIUNTO al pulsante in jQuery, non nel markup HTML.


Popovers fanno funzionare lo stesso come le descrizioni dei comandi:

$('[data-toggle="popover"]').popover({trigger: 'hover','placement': 'top'});

E il gioco è fatto! Finalmente successo.

Uno dei maggiori problemi nel capire questa roba è stato far funzionare bootstrap con jsFiddle ... Ecco cosa devi fare:

  1. Ottieni riferimento per Twitter Bootstrap CDN da qui: http://www.bootstrapcdn.com/
  2. Incolla ogni collegamento nel blocco note e rimuovi TUTTO tranne l'URL. Ad esempio:
    //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css
  3. In jsFiddle, sul lato sinistro, apri il menu a discesa della fisarmonica Risorse esterne
  4. Incolla ogni URL, premendo il segno più dopo ogni incolla
  5. Ora, apri il menu a discesa della fisarmonica "Frameworks & Extensions" e seleziona jQuery 1.9.1 (o qualsiasi altro ...)

ORA sei pronto per partire.


in jsFiddle, perché il trigger non è circondato da virgolette singole ma il posizionamento lo è?
— HPWD

Non c'è una buona ragione, l'ho semplicemente perso. Ma sembra funzionare. Forse le chiavi di una sola parola non hanno bisogno delle virgolette - a volte non sono richieste - tuttavia, di solito le inserisco.
— cssyphus

mi sembra logico. Grazie per il chiarimento.
— HPWD

4
che suona come incomprensibile per me. Ah! dovevo solo dirlo;)
— Evan Larsen

Puoi usare quel metodo nella relatività a un contenitore specifico? Istanziare tutti i tooltip o i popover all'interno di un contenitore specifico?
— Michael Ecklund

231

Lo uso su tutte le mie pagine per abilitare il tooltip

$(function () { $("[data-toggle='tooltip']").tooltip(); });

4
grazie, tra tutte le risposte che ho dato dovrei dire che probabilmente ho passato meno tempo a questa. Ma ancora in qualche modo ha assegnato il maggior numero di punti.
— Evan Larsen

Ma il problema è. non funziona con Chrome per me. poi ho finito con il fare qualche cosa jsfiddle.net/arunpjohny/4HptX/4 da questo post stackoverflow.com/questions/18372632/...
— . Md Salahuddin

@Md Salahuddin, quindi ora funziona, una volta aggiornato il tuo jquery? Stai facendo una domanda o era una dichiarazione?
— Evan Larsen

1
È solo una dichiarazione. Ho usato jsfiddle.net/arunpjohny/4HptX/4 invece poiché questo codice non funzionava con Chrome per il mio caso.
— Md. Salahuddin

27

Lavorare con BOOTSTRAP 3: breve e semplice

Controllare - JS Fiddle

HTML

<div id="myDiv">
<button class="btn btn-large btn-danger" data-toggle="tooltip" data-placement="top" title="" data-original-title="Tooltip on top">Tooltip on top</button>    
</div>

Javascript

$(function () { 
    $("[data-toggle='tooltip']").tooltip(); 
});

Questo non funzionerà se si desidera avere la funzionalità pop-over per i dati che vengono caricati in modo asincrono (ajax, angolare ecc.) Ma la risposta di seguito lo farà.
— Adrian Hedley

6

Dovevo farlo su DOM pronto

$( document ).ready(function () { // this has to be done after the document has been rendered
    $("[data-toggle='tooltip']").tooltip({html: true}); // enable bootstrap 3 tooltips
    $('[data-toggle="popover"]').popover({
        trigger: 'hover',
        'placement': 'top',
        'show': true
    });
});

E cambia i miei ordini di carico in modo che siano:

  • jQuery
  • jQuery UI
  • Bootstrap

1
ho avuto un problema simile, stavo caricando jquery ui dopo il bootstrap, la tua risposta mi ha fatto capire il problema.
— hubson bropa

controlla questo per popover, 1. Attivazione dei popover, 2. Posizionamento dei popover tramite attributi di dati
— shaijut

5

Per qualche motivo l'unico modo in cui sono riuscito a far funzionare il mio codice è cambiare un paio di cose. Se finora niente ha funzionato per te, ti preghiamo di fare un giro a questo:

$('body').popover({ 
    selector: '[data-toggle="popover"]', 
    trigger: 'hover',
    placement: 'right'
});

1
Questa è l'unica cosa che ha funzionato per me poiché l'elemento popover potrebbe non essere in vista per cominciare. Grazie!
— J. Titus

0

Hai un errore di sintassi nello script e, come notato da xXPhenom22Xx, devi creare un'istanza del tooltip.

<script type="text/javascript">

    $(document).ready(function() {

        $('.btn-danger').tooltip();

    }); //END $(document).ready()

</script>

Nota che ho usato la tua classe "btn-danger". Puoi creare una classe diversa o utilizzare un file id="someidthatimakeup".


Ok ho cambiato il codice in modo che corrisponda a quello che hai suggerito, credo. Ancora non funziona. Non conosco ancora Javascript quindi questo è un po 'complicato. Sto solo cercando di far funzionare gli esempi che devono funzionare allo stesso modo.
— user2560895

Il popover è un po 'difficile ma ho ottenuto che il tooltip funzioni come sopra.
— cssyphus

0

Devi solo abilitare la descrizione comando:

$('some id or class that you add to the above a tag').popover({
    trigger: "hover" 
})

No, questo mostrerà solo il popover stesso quando ci passi sopra con il mouse, non il suggerimento.
— CpnCrunch

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.