kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Pål
Pål
Вопрос

Добавление пользовательского класса к всплывающей подсказке

Я хочу придать стиль (css) некоторым всплывающим подсказкам bootstrap-tooltip.js, не затрагивая все всплывающие подсказки. Я пробовал много разных решений, но в итоге всегда добавляю класс к элементу, который вызывает всплывающую подсказку.

Вот что я пробовал:

$(function(){
  $("[id$=amount]").tooltip({
    trigger: 'manual',
    placement: 'right'
  }).addClass("test"); // <--- This does not help me. Class just ends up 
});                    //      in the trigger element. Se html output 
                       //      from firebug below...

Но тогда класс просто оказывается в элементе, который вызывает всплывающие подсказки:

<input 
     id="list_wishes_attributes_0_amount" 
     class="test"  <!-- The class I tried to add to the tooltip ended up here. -->
     type="text" 
     tabindex="3" 
     size="30" 
     rel="tooltop" 
     name="list[wishes_attributes][0][amount]" 
     min="0" 
     data-original-title="Only numbers please"
/>

Как я могу назначить пользовательский класс для моей всплывающей подсказки, а не для поля ввода, которое ее вызывает?

30 2012-10-31T14:36:10+00:00 7
 P&#229;l
Pål
Редактировал вопрос 31-го октября 2012 в 2:50
Программирование
jquery
css
twitter-bootstrap
Решение / Ответ
 Yohn
Yohn
3-го ноября 2012 в 3:00
2012-11-03T03:00:40+00:00
Дополнительно
Источник
Редактировать
#17605826

До появления Bootstrap 4:

$().tooltip({
  template: '<div class="tooltip CUSTOM-CLASS"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
})

Bootstrap 4:

$().tooltip({
  template: '<div class="tooltip CUSTOM-CLASS" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>'
})
 Yohn
Yohn
Редактировал ответ 28-го октября 2019 в 5:21
56
0
 cneuro
cneuro
26-го апреля 2015 в 2:41
2015-04-26T14:41:00+00:00
Дополнительно
Источник
Редактировать
#17605827

Метод, который я использую, чтобы прикрепить класс непосредственно на элемент через jQuery (работает в Bootstrap 3). Это's немного сложнее, ведь нужно найти скрытые, автоматически сгенерированный элемент через родительская'атрибуты-ный`.

в

$('#[id$=amount]')
  .tooltip()
    .data('bs.tooltip')
      .tip()
      .addClass('custom-tooltip-class');

Я предпочитаю, чтобы это переопределение шаблона, потому что он'ы гораздо более сжатой и менее подробной, чем все, что дополнительный HTML.

22
0
 andreivictor
andreivictor
14-го апреля 2017 в 8:35
2017-04-14T08:35:26+00:00
Дополнительно
Источник
Редактировать
#17605828

Я'ве создали небольшое расширение для загрузки плагина tooltip, который позволяет добавлять пользовательские классы для подсказок с помощью параметра `customClass в JavaScript или через данных пользовательских атрибута класса в формате HTML.

Использование:

  • атрибутов данных-пользовательских-класса:

данные-пользовательские-класс="в тултипе-изготовленный на заказ" в - строит подсказка, Подсказка-пользовательский класс`.

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="top" data-custom-class="tooltip-custom" title="Custom tooltip example">Tooltip example</button>
  • параметр через customClass:

customClass: &#39;подсказка-пользовательские&#39;

$('.my-element').tooltip({
    customClass: 'tooltip-custom'
});

Установка#:

Код отличается в зависимости от версии загрузчика использован (В3, В4-Альфа или В4).

Ушко В4 (совместимо с V4.0.0 и V4.1.0)

Язык JavaScript

;(function($) {

  if (typeof $.fn.tooltip.Constructor === 'undefined') {
    throw new Error('Bootstrap Tooltip must be included first!');
  }

  var Tooltip = $.fn.tooltip.Constructor;

  // add customClass option to Bootstrap Tooltip
  $.extend( Tooltip.Default, {
    customClass: ''
  });

  var _show = Tooltip.prototype.show;

  Tooltip.prototype.show = function () {

    // invoke parent method
    _show.apply(this,Array.prototype.slice.apply(arguments));

    if ( this.config.customClass ) {
        var tip = this.getTipElement();
        $(tip).addClass(this.config.customClass);
    }

  };

})(window.jQuery);

УСБ

.tooltip-custom .tooltip-inner {
  background-color: #5b2da3;
}
.tooltip-custom.bs-tooltip-top .arrow:before {
  border-top-color: #5b2da3;
}
.tooltip-custom.bs-tooltip-right .arrow:before {
  border-right-color: #5b2da3;
}
.tooltip-custom.bs-tooltip-left .arrow:before {
  border-left-color: #5b2da3;
}
.tooltip-custom.bs-tooltip-bottom .arrow:before {
  border-bottom-color: #5b2da3;
}

Сасс

@mixin tooltip-custom($bg-color, $color: $tooltip-color) {

  .tooltip-inner {
    background-color: $bg-color;
    @if $color != $tooltip-color {
      color: $color;
    }
  }

  &.bs-tooltip-top .arrow:before {
    border-top-color: $bg-color;
  }

  &.bs-tooltip-right .arrow:before {
    border-right-color: $bg-color;
  }

  &.bs-tooltip-left .arrow:before {
    border-left-color: $bg-color;
  }

  &.bs-tooltip-bottom .arrow:before {
    border-bottom-color: $bg-color;
  }

}

Пример:


Начальной загрузки В3.3.7

Язык JavaScript

(function ($) {

  if (typeof $.fn.tooltip.Constructor === 'undefined') {
    throw new Error('Bootstrap Tooltip must be included first!');
  }

  var Tooltip = $.fn.tooltip.Constructor;

  $.extend( Tooltip.DEFAULTS, {
    customClass: ''
  });

  var _show = Tooltip.prototype.show;

  Tooltip.prototype.show = function () {

    _show.apply(this,Array.prototype.slice.apply(arguments));

    if ( this.options.customClass ) {
        var $tip = this.tip()
        $tip.addClass(this.options.customClass);
    }

  };

})(window.jQuery);

УСБ

.tooltip-custom .tooltip-inner {
  background-color: #5b2da3;
}
.tooltip-custom.top .tooltip-arrow {
  border-top-color: #5b2da3;
}
.tooltip-custom.right .tooltip-arrow {
  border-right-color: #5b2da3;
}
.tooltip-custom.left .tooltip-arrow {
  border-left-color: #5b2da3;
}
.tooltip-custom.bottom .tooltip-arrow {
  border-bottom-color: #5b2da3;
}

Пример: https://jsfiddle.net/cunz1hzc/


Загрузки В4.0.0-Альфа.6

Язык JavaScript

;(function($) {

  if (typeof $.fn.tooltip.Constructor === 'undefined') {
    throw new Error('Bootstrap Tooltip must be included first!');
  }

  var Tooltip = $.fn.tooltip.Constructor;

  // add customClass option to Bootstrap Tooltip
  $.extend( Tooltip.Default, {
      customClass: ''
  });

  var _show = Tooltip.prototype.show;

  Tooltip.prototype.show = function () {

    // invoke parent method
    _show.apply(this,Array.prototype.slice.apply(arguments));

    if ( this.config.customClass ) {
      var tip = this.getTipElement();
      $(tip).addClass(this.config.customClass);
    }

  };

})(window.jQuery);

УСБ

.tooltip-custom .tooltip-inner {
    background-color: #5b2da3;
}
.tooltip-custom.tooltip-top .tooltip-inner::before, 
.tooltip-custom.bs-tether-element-attached-bottom .tooltip-inner::before {
    border-top-color: #5b2da3;
}
.tooltip-custom.tooltip-right .tooltip-inner::before, 
.tooltip-custom.bs-tether-element-attached-left .tooltip-inner::before {
    border-right-color: #5b2da3;
}
.tooltip-custom.tooltip-bottom .tooltip-inner::before,
.tooltip-custom.bs-tether-element-attached-top .tooltip-inner::before {
    border-bottom-color: #5b2da3;
}
.tooltip-custom.tooltip-left .tooltip-inner::before,
.tooltip-custom.bs-tether-element-attached-right .tooltip-inner::before {
    border-left-color: #5b2da3;
}

САС миксина:

@mixin tooltip-custom($bg-color, $color: $tooltip-color) {

  .tooltip-inner {
    background-color: $bg-color;
    @if $color != $tooltip-color {
     color: $color;
  }
}

&.tooltip-top,
&.bs-tether-element-attached-bottom {
  .tooltip-inner::before {
    border-top-color: $bg-color;
  }
}

&.tooltip-right,
&.bs-tether-element-attached-left {
  .tooltip-inner::before {
    border-right-color: $bg-color;
  }
}

&.tooltip-bottom,
&.bs-tether-element-attached-top {
  .tooltip-inner::before {
    border-bottom-color: $bg-color;
  }
}

&.tooltip-left,
&.bs-tether-element-attached-right {
  .tooltip-inner::before {
    border-left-color: $bg-color;
  }
}

}

Пример: https://jsfiddle.net/6dhk3f5L/


GitHub РЕПО:

https://github.com/andreivictor/bootstrap-tooltip-custom-class

 andreivictor
andreivictor
Редактировал ответ 28-го апреля 2018 в 8:37
12
0
 Darrelk
Darrelk
21-го сентября 2017 в 11:38
2017-09-21T11:38:06+00:00
Дополнительно
Источник
Редактировать
#17605829

Может быть, это может помочь кому-то, как помогло мне:

Добавить пользовательский класс в вашу "автоматически" и узел подсказка:

$(document).ready(function() {
    $(".my-class").tooltip({
        tooltipClass:"my-custom-tooltip"
    });
});

Образец вывода в качестве последнего дочернего элемента тела:

<div id="ui-tooltip-1" role="tooltip" class="ui-tooltip ui-widget ui-corner-all ui-widget-content my-custom-tooltip" style="top: 295px; left: 908px; display: block;">
    <div class="ui-tooltip-content">My title contnet</div>
</div>

Применяется такой логике вопросы:

$(function(){
  $("[id$=amount]").tooltip({
    trigger: 'manual',
    placement: 'right'
    tooltipClass:'test'
  })
}); 

Протестированы с использованием пользовательского интерфейса jQuery - В1.10.3

1
0
 Ricardo
Ricardo
15-го июня 2018 в 7:32
2018-06-15T19:32:30+00:00
Дополнительно
Источник
Редактировать
#17605830

Альтернатива этот ответ, которая работает в случае селектор возвращает много подсказок: в

$("[id$=amount]")
  .tooltip()
  .each((i, el)=> $(el).data('bs.tooltip').tip().addClass('test'));

(это должно быть нормально для Bootstrap 2 и 3).

1
0
 Beckyjoon
Beckyjoon
31-го октября 2012 в 9:02
2012-10-31T21:02:27+00:00
Дополнительно
Источник
Редактировать
#17605825

Перед .addClass попробуйте добавить .parent(), пока не получите родительский div. Также вы всегда можете использовать селекторы jQuery, чтобы найти нужный вам div и обновить CSS оттуда.

Cody Guldner
Cody Guldner
Редактировал ответ 21-го апреля 2013 в 4:45
0
0
 Chase
Chase
31-го октября 2012 в 3:08
2012-10-31T15:08:42+00:00
Дополнительно
Источник
Редактировать
#17605824

Попробуйте установить параметр html в значение true и вставить в параметр title что-то вроде <span class="test">YOUR TEXT</span>.

$(function(){
  $("[id$=amount]").tooltip({
    trigger: 'manual',
    placement: 'right',
    html: true,
    title: '<span class="test">YOUR TEXT</span>'
  });
}); 

Честно говоря, я не уверен, что это сработает, но думаю, что попробовать стоит.

EDIT: После прочтения этого поста это может быть более полезным.

 Community
Community
Редактировал ответ 23-го мая 2017 в 12:02
0
0
Похожие сообщества 8
HTML/CSS — русскоговорящее сообщество
HTML/CSS — русскоговорящее сообщество
6 455 пользователей
Возникли проблемы с HTML или CSS? – пиши сюда, обсудим и предложим самое лучшее решение. @javascript_ru @js_noobs_ru @frontend_ru Каналы: @defront @htmlshit 🟡 Ищешь чат? @it_chats 🟡 Мы всегда рады помочь, но у нас есть правила. ВАЖНО: http://nometa.xyz
Открыть telegram
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
2 919 пользователей
Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Библиотека верстальщика: @weblibrary Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @bigmarketolog Автор: @M_Boroda
Открыть telegram
Frontend_ru
Frontend_ru
2 468 пользователей
Русскоговорящее сообщество фронтенд разработчиков Каналы: @frontendnoteschannel @defront Чаты: @bem_ru @javascript_ru @css_ru Важно! http://nometa.xyz
Открыть telegram
Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
2 373 пользователей
✅ Наш канал: @tpverstak Если не можете писать в чате, то перезайдите и подтвердите, что вы не бот, нажав на кнопку 🔥 ПРАВИЛА ЧАТА — @annblok/BygPgC3E7" rel="nofollow noopener noreferrer" class="text-blue hover:text-black link" target="_blank">https://teletype.in/@annblok/BygPgC3E7 👍 За бан разбанов нет
Открыть telegram
JavaScript чат | HTML 5 & CSS 3
JavaScript чат | HTML 5 & CSS 3
2 228 пользователей
Чат для тех кому нужна помощь по коду, или есть какие-то вопросы по реализации задачи в JavaScript. 💼 По вопросам: @dictor_inc ✏️ Правила: t.me/javascript_alert/3070 Практика: https://t.me/joinchat/GmZ5CkHxDCszM2ko
Открыть telegram
БЭМ
БЭМ
920 пользователей
Про БЭМ (https://ru.bem.info) Офтопим про фронтенд в https://t.me/yalovefrontend
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 15 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией