Керування завантаженням з декількома перемиканнями даних


154

Чи є спосіб призначити більш ніж одній події керування завантажувачем через "перемикання даних". Наприклад, скажімо, що я хочу, щоб кнопка, на якій було призначено "підказку" та перемикач "кнопка".
Спробував data-toggle = "кнопка підказки", але працювала лише підказка.

Редагувати:

Це легко "вирішувати"

$("#newbtn").toggleClass("active").toggleClass("btn-warning").toggleClass("btn-success");

Відповіді:


330

Якщо ви хочете додати модальні та підказки без додавання JavaScript або зміни функції підказки, ви також можете просто обгорнути елемент навколо нього:

<span data-toggle="modal" data-target="modal">
    <a data-toggle="tooltip" data-placement="top" title="Tooltip">
      Hover Me           
    </a>
</span>

6
Це насправді найкращий підхід, оскільки він відкладає стурбованість презентації до презентаційного шару.
LastTribunal

3
Однак є деяка різниця: data-toggle="tooltip"всередині головного (кнопкового) елемента буде чітко відображатися поза цим елементом, тоді як він буде перекриватися з цим елементом, якщо встановити його в обгортку прольоту.
Бенджамін

1
дякую, як це слід зробити - Без javascript
tsadkan yitbarek

Коротке, просте та розумне рішення. Додавання Span до тега Anchor не змінює дизайн у завантажувальному інструменті. Отже, це ідеальне рішення для спільної роботи моделі та підказки.
ankit suthar

це не спрацювало для мене<span data-toggle="modal" data-target="#myModalForm" title="Click to edit row" data-row="0" data-cmid="425" data-id="11788" data-src="1.1.1.1" data-src_desc="null" data-dst="2.2.2.2" data-dst_desc="null" data-protocol="TCP" data-ports="80" data-remarks="none"><a class="btn btn-sm btn-info" data-toggle="tooltip" title="Click to edit row" data-original-title="Click to edit row" data-trigger="hover" href="javascript:void(0)"><i class="fa fa-pencil" aria-hidden="true"></i></a></span>
shorif2000

72

Оскільки підказка не ініціалізується автоматично, ви можете внести зміни в ініціалізацію підказки. Я зробив своє так:

$(document).ready(function() {
    $('body').tooltip({
        selector: "[data-tooltip=tooltip]",
        container: "body"
    });
});

з цією розміткою:

<button type="button" data-target="#myModal" data-toggle="modal" data-tooltip="tooltip" class="btn btn-info" title="Your tooltip">Text here</button>

Зауважте data-tooltip.

Оновлення

Або просто,

$('[data-tooltip="tooltip"]').tooltip();

10
Спрощено це за допомогою: $ ('[data-tooltip = "tooltip"]'). Tooltip ();
Райан Керра

3
Використовували свою оновлену відповідь і було дуже легко, працювали чудово
Єдиний і єдиний

1
найкраще, ніж
обгортати

1
Проблема з цим (та іншими рішеннями в цьому питанні зараз) полягає в тому, що при натисканні кнопки відкрити модальний режим, а потім закрити його, підказка з’явиться знову (або залишається видимою), навіть якщо миша залишила кнопку. Це дуже дратує, якщо у вас, наприклад, є кнопки в таблиці в кожному рядку, оскільки вони можуть блокувати кнопку вгорі / внизу. Єдиний спосіб приховати це - натиснути десь поза підказкою.
обійняти

1
Мені подобається такий підхід набагато більше, ніж прийнята відповідь із обгорткою. Це дуже просто, оскільки він розширює можливості HTML5, не надто перевантажуючи DOM. Також у моєму випадку, здається, підхід до обгортки не здавався
Canelo Digital,

11

Мені вдалося вирішити цю проблему без необхідності змінювати розмітку за допомогою наступного фрагмента jQuery. У мене була подібна проблема, коли я хотів отримати підказку на кнопці, яка вже використовувала перемикання даних для модального режиму. Все, що вам потрібно буде тут зробити, - це додати назву до кнопки.

$('[data-toggle="modal"][title]').tooltip();

9

Це найкраще рішення, яке я щойно реалізував:

HTML

<a data-toggle="tooltip" rel="tooltip" data-placement="top" title="My Tooltip text!">Hover over me</a>

JAVASCRIPT, який у будь-якому випадку потрібно включити незалежно від того, який метод ви використовуєте.

$('[rel="tooltip"]').tooltip(); 

1
Це найчистіша, найменш нав'язлива відповідь
Смирнян

8

Ще ні. Однак було запропоновано, щоб хтось додав цю функцію одного дня.

Наступний випуск завантажувальної програми Github показує ідеальний приклад того, чого ви бажаєте. На цьому етапі можливо, але не без написання власного кодового рішення.

Перевір... :-)

https://github.com/twitter/bootstrap/isissue/7011


На жаль, це питання (# 7011) відхилено.
TJ Crowder

3

Я використовую href для завантаження модальних і залишаю перемикання даних для підказки:

<a 
    data-toggle="tooltip"
    data-placement="top"
    title="My Tooltip text!"
    href="javascript:$('#id').modal('show');"
>
+
</a>

3

Оскільки Bootstrap змушує вас ініціалізувати підказки лише через Javascript, я змінив data-toggle="tooltip"(оскільки це тоді марно) на class="bootstrap-tooltip"та застосував цей Javascript для ініціалізації моїх підказок:

$('.bootstrap-tooltip').tooltip();

І тому я міг вільно використовувати data-toggleатрибут для чогось іншого (наприклад data-toggle="button").


Чудово. Додайте також HTML.
Web_Developer

2

Просто для доповнення @ Роман Хольцнер відповідь ...

У моєму випадку у мене є кнопка, яка показує підказку, і вона повинна залишатися відключеною до подальших дій. Використовуючи його підхід, модаль працює, навіть якщо кнопка відключена, тому що її виклик знаходиться поза кнопкою - я перебуваю у файлі леза Laravel, просто щоб було зрозуміло :)

<span data-toggle="modal" data-target="#confirm-delete" data-href="{{ $e->id }}">
    <button name="delete" class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="Excluir Entrada" disabled>
        <i class="fa fa-trash fa-fw"></i>
    </button>
</span>

Тож якщо ви хочете показати модальний лише тоді, коли кнопка активна, вам слід змінити порядок тегів:

<span data-toggle="tooltip" data-placement="bottom" title="Excluir Entrada" disabled>
    <button name="delete" class="btn btn-default" data-href="{{ $e->id }}" data-toggle="modal" data-target="#confirm-delete" disabled>
        <i class="fa fa-trash fa-fw"></i>
    </button>
</span>

Якщо ви хочете перевірити його, змініть атрибут на код JQuery:

$('button[name=delete]').attr('disabled', false);

2

Ще одне рішення:

    <a data-toggle="modal" data-target="#exampleModalCenter">
      <span
        class="tags"
        data-toggle="tooltip"
        data-placement="right"
        title="Tooltip text"
      >
        Text
     </span>
   </a>

2

Є гарне рішення за допомогою класу .stretched-link. Кнопка повинна мати клас.position-relative . Ось повний робочий приклад:

Підказку потрібно додати до кнопки, інакше її положення буде неправильним.

$('[data-toggle="tooltip"]').tooltip();
/*DEMO*/.btn{margin-left:5rem;margin-top:5rem}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

<!--BUTTON-->
<button class="btn btn-primary position-relative" data-toggle="tooltip" data-trigger="hover" data-placement="left" title="Tooltip text">
    <span class="stretched-link" data-toggle="modal" data-target="#exampleModal"></span>
    Click Me!
</button>

<!--DEMO MODAL-->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="exampleModalLabel">Modal title</h5><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body">Modal body</div></div></div></div>

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>


1

Коли ви відкриєте модальний тег і хочете показати підказку, а якщо ви впровадите підказку всередині тегу, він відобразить підказку поблизу тегу. подобається це

введіть тут опис зображення

Я пропоную використовувати div поза тегом і використовувати "display: inline-block;"

<div data-toggle="tooltip" title="" data-original-title="Add" style=" display inline-block;">
    <a class="btn btn-primary" data-toggle="modal" data-target="#myModal" onclick="setSelectedRoleId(6)">
     <span class="fa fa-plus"></span>
    </a>
</div>

введіть тут опис зображення


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