Bootstrap 3.0 Поповери та підказки


84

Я не новачок у Bootstrap, і у мене виникають проблеми з тим, щоб функції Popover та підказки працювали. У мене не було проблем зі спадними меню та моделями, але, здається, мені чогось не вистачає на появу та підказки.

Я отримую підказки, щоб показати їх, але вони не стилізовані і розташовані, як приклади завантажувальної стрічки. А поповер взагалі не працює.

Будь ласка, погляньте і дайте мені знати, чого я пропускаю.

       <!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>

Я просто опублікував те саме запитання кілька хвилин тому, також використовуючи BS3 з усіма іншими роботами, такими як Модалі та вкладки, але жодні підказки чи поповери ... не оновлять вас, якщо я щось знайду.
xXPhenom22Xx

для popover параметри не визначені
Cybermaxs

Наразі я просто намагався отримати поведінку за замовчуванням, але я зацікавлений у тому, щоб вона відображалася при наведенні, а не клацанні, але це було наступним. Чи все-таки мені потрібно щось вкладати для варіантів?
user2560895

Наведений вище код - це те, що я зараз використовую, і він все ще не працює. Будь-які пропозиції? У мене щось є в неправильному порядку чи щось інше?
user2560895

Відповіді:


147

Виявляється, у Евана Ларсена найкраща відповідь . Будь ласка, проголосуйте його відповідь (та / або виберіть її як правильну) - вона чудова.

Тут працює jsFiddle

Використовуючи трюк Евана, ви можете створити всі підказки одним рядком коду:

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

Ви побачите, що всі підказки у вашому довгому абзаці мають робочі підказки лише з цим одним рядком.

У прикладі jsFiddle (посилання вище) я також додав ситуацію, коли одна підказка (за допомогою кнопки Вхід) за замовчуванням увімкнена. Також код підказки ДОДАЄТЬСЯ до кнопки в jQuery, а не в розмітці HTML.


Popovers зробити роботу так само , як спливаючі підказки:

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

І ось вам! Нарешті успіх.

Однією з найбільших проблем у з’ясуванні цього матеріалу було змусити роботу бутстрапа працювати з jsFiddle ... Ось що ви повинні зробити:

  1. Отримати посилання на Twitter Bootstrap CDN можна тут: http://www.bootstrapcdn.com/
  2. Вставте кожне посилання в блокнот і видаліть ВСЕ, крім URL-адреси. Наприклад:
    //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css
  3. У jsFiddle, зліва, відкрийте спадне меню "Зовнішні ресурси"
  4. Вставте в кожну URL-адресу, натискаючи знак плюс після кожної вставки
  5. Тепер відкрийте спадне меню "Рамки та розширення" і виберіть jQuery 1.9.1 (або будь-який інший ...)

ЗАРАЗ ви готові піти.


у jsFiddle, чому тригер не оточений одинарними лапками, а розміщенням?
HPWD

Поважної причини немає, я просто її пропустив. Але це, здається, працює. Можливо,
однословним

це звучить логічно для мене. Дякую за роз'яснення.
HPWD

4
це звучить для мене безглуздям. Ха! просто мусив це сказати;)
Еван Ларсен

Чи можете ви використовувати цей метод у відносності до конкретного контейнера? Примірник усіх підказок чи попов у межах конкретного контейнера?
Michael Ecklund

231

Я використовую це на всіх своїх сторінках, щоб увімкнути підказку

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

4
дякую, з усіх відповідей, які я дав, я мав би сказати, що, мабуть, витратив на це найменше часу. Але все ж якось він набрав найбільше балів.
Еван Ларсен

Але проблема в тому. це не працює з хромом для мене. то я закінчив з робити деякі речі jsfiddle.net/arunpjohny/4HptX/4 з цього поста stackoverflow.com/questions/18372632 / ...
Md . Salahuddin

@Md Salahuddin, так що це працює зараз, як тільки ви оновили свій jquery? Ви задаєте питання чи це було заявою?
Еван Ларсен

1
Це просто заява. я натомість використовував jsfiddle.net/arunpjohny/4HptX/4, оскільки цей код не працював з chrome для мого випадку.
Md. Salahuddin

27

Робота з BOOTSTRAP 3: Коротка та проста

Перевірка - 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(); 
});

Це не спрацює, якщо ви хочете мати функцію спливання для даних, які завантажуються асинхронно (ajax, angular тощо), але відповідь нижче буде.
Адріан Хедлі,

6

Мені довелося зробити це на DOM готовим

$( 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
    });
});

І змініть мої замовлення на завантаження на:

  • jQuery
  • Інтерфейс користувача jQuery
  • Bootstrap

1
у мене була подібна проблема, я завантажував jquery ui після завантаження, ваша відповідь змусила мене зрозуміти проблему з цим.
hubson bropa

перевірте це на поповер, 1. Запуск поповерів, 2. Позиціонування поповерів за допомогою атрибутів даних
shaijut

5

Чомусь єдиний спосіб, яким я зміг змусити свій код працювати, - це змінивши пару речей. Якщо у вас до цього часу нічого не працювало, будь ласка, розкрутіть це:

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

1
Це єдине, що в мене спрацювало, оскільки для початку елемент popover може бути недоступним. Дякую!
J. Titus

0

У вашому сценарії є синтаксична помилка, і, як зазначає xXPhenom22Xx, ви повинні створити екземпляр підказки.

<script type="text/javascript">

    $(document).ready(function() {

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

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

</script>

Зверніть увагу, що я використовував ваш клас "btn-danger". Ви можете створити інший клас або використовувати id="someidthatimakeup".


Гаразд, я змінив код, щоб він відповідав тому, що ви запропонували. Це все ще не працює. Я ще не знаю Javascript, тому це трохи складно. Я просто намагаюся отримати приклади, які вони мають працювати, однаково.
user2560895

Поповер трохи складний, але я отримав підказку для роботи, як зазначено вище.
cssyphus

0

Вам просто потрібно ввімкнути підказку:

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

Ні, це просто відображатиме сам поповер, коли ви наведете на нього курсор, а не підказку.
CpnCrunch

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.