Добавить разрыв строки в подсказках

Как добавить строки в HTML-подсказку?

Я попытался использовать <br/> и \n в подсказке следующим образом:

<a href="#" title="Some long text <br/> Second line text \n Third line text">Hover me</a>

Однако это было бесполезно, и я мог видеть буквальный текст <br/> и \n внутри всплывающей подсказки. Любые предложения будут полезны.

Ответ 1

Просто используйте код сущности &#013; для строки в атрибуте title.

Ответ 2

&#013; в сочетании со стилем white-space: pre-line; работал у меня.

Ответ 3

Просто добавьте атрибут данных

данный HTML = "истина"

и ты в порядке.

Например. использование:

<i data-html="true" class="tooltip ficon-help-icon" twipsy-content-set="true" data-original-title= "<b>Hello</b> Stackoverflow" </i>

Он работал в большинстве плагинов всплывающей подсказки, которые я пробовал на данный момент.

Ответ 5

Дайте \n между текстом. Он работает во всех браузерах.

Example 
img.tooltip= " Your Text : \n"
img.tooltip += " Your text \n";

Это будет работать для меня, и оно используется в коде.

Надеюсь, что это сработает для вас.

Ответ 6

\n

со стилем

.tooltip-inner {
    white-space: pre-line;
}

работал у меня.

Ответ 7

Я нашел его. Это можно сделать, просто делая это

<a ref="#" title="First Line
                  Second Line
                  Third line">Hover Me</a>

Ответ 8

&lt;br /&gt; работал, если вы используете qTip

Ответ 9

Версия javascript

Так как &#013; (html) 0D (hex), это можно представить как '\u000d'

str = str.replace(/\n/g, '\u000d');

Кроме того,

Обмен с вами ребятами AngularJS filter, который заменяет \n этим символом благодаря ссылкам в других ответах

app.filter('titleLineBreaker', function () {
    return function (str) {
        if (!str) {
            return str;
        }

        return str.replace(/\n/g, '\u000d');
    };
});

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

<div title="{{ message | titleLineBreaker }}"> </div>

Ответ 10

Просто добавьте data-html = "true"

<a href="#" title="Some long text <br/> Second line text \n Third line text" data-html="true">Hover me</a>

Ответ 11

можно добавлять линейные разрывы внутри встроенных подсказок HTML, просто используя атрибут title, распределенный по нескольким строкам.

Однако я бы рекомендовал использовать плагин подсказки jQuery, такой как Q-Tip: http://craigsworks.com/projects/qtip/.

Просто настроить и использовать. Кроме того, есть много бесплатных всплывающих подсказок javascript.

edit: исправление в первом утверждении.

Ответ 12

Для меня двухэтапное решение (комбинация форматирования заголовка и добавления стиля) работало следующим образом:

1) Отформатируйте title attrbiute:

<a ref="#" title="First Line
                  Second Line
                  Third line">Hover Me</a>

2) Добавьте этот стиль к элементу tips:

white-space: pre-line;

Протестировано в IE8, Firefox 22 и Safari 5.1.7.

Ответ 13

Хорошо, если вы используете утилиту JQuery Tooltip, то в файле jquery-ui.js найдите следующий текст:

tooltip.find(".ui-tooltip-content").html(content);

и положите выше, что

content=content.replace(/\&lt;/g,'<').replace(/\&gt;/g,'>');

Я надеюсь, что это также сработает для вас.

Ответ 14

использовать &#13; должно работать (я тестировал в Chrome, Firefox и Edge):

let users = [{username: 'user1'}, {username: 'user2'}, {username: 'user3'}];
let favTitle = '';
for(let j = 0; j < users.length; j++)
    favTitle += users[j].username + "&#13;";

$("#item").append('<i title="In favorite users: &#13;' + favTitle + '">Favorite</i>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = item></div>

Ответ 15

Решение для меня было http://jqueryui.com/tooltip/:

И здесь код (часть script, который делает <br/> Works - это "content:" ):

HTML HEAD

<head runat="server">
    <script src="../Scripts/jquery-2.0.3.min.js"></script>
    <link href="Content/themes/base/jquery-ui.css" rel="stylesheet" />
    <script src="../Scripts/jquery-ui-1.10.3.min.js"></script>
<script>
    /*Position:
      my =>  at
      at => element*/
    $(function () {
        $(document).tooltip({
            content: function() {
                var element = $( this );
                if ( element.is( "[title]" ) ) {
                    return element.attr( "title" );
                }

            },
            position: { my: "left bottom-3", at: "center top" } });
    });
</script>
</head>

Управление ASPX или HTML

<asp:TextBox ID="Establecimiento" runat="server" Font-Size="1.3em" placeholder="Establecimiento" title="Texto 1.<br/>TIP: texto 2"></asp:TextBox>

Надеюсь, что это поможет кому-то

Ответ 16

Больше, чем JQuery UI 1.10 не поддерживает использование тега html внутри атрибута title, потому что его недопустимый html.

Таким образом, альтернативным решением является использование опции contenttip content. Refer - http://api.jqueryui.com/tooltip/#option-content

Ответ 17

Используйте

&#013

Там не должно быть никаких; персонаж.

Ответ 18

если вы используете jquery-ui 1.11.4:

var tooltip = $.widget( "ui.tooltip", {
    version: "1.11.4",
    options: {
        content: function() {
            // support: IE<9, Opera in jQuery <1.7
            // .text() can't accept undefined, so coerce to a string
            var title = $( this ).attr( "title" ) || "";
            // Escape title, since we're going from an attribute to raw HTML
Replace-->  //return $( "<a>" ).text( title ).html();
by -->      return $( "<a>" ).html( title );
             },

Ответ 19

AngularJS with Bootstrap UI Tolltip (uib-tooltip), has three versions of tool-tip:

uib-tooltip, uib-tooltip-template и uib-tooltip-html

- uib-tooltip takes only text and will escape any HTML provided
- uib-tooltip-html takes an expression that evaluates to an HTML string
- uib-tooltip-template takes a text that specifies the location of the template

В моем случае я выбрал uib-tooltip-html, и он состоит из трех частей:

  1. конфигурация
  2. контроллер
  3. HTML

Пример:

(function(angular) {

//Step 1: configure $sceProvider - this allows the configuration of $sce service.

angular.module('myApp', ['uib.bootstrap'])
       .config(function($sceProvider) {
           $sceProvider.enabled(false);
       });

//Step 2: Set the tooltip content in the controller

angular.module('myApp')
       .controller('myController', myController);

myController.$inject = ['$sce'];

function myController($sce) {
    var vm = this;
    vm.tooltipContent = $sce.trustAsHtml('I am the first line <br /><br />' +
                                         'I am the second line-break');

    return vm;
}

 })(window.angular);

//Step 3: Use the tooltip in HTML (UI)

<div ng-controller="myController as get">
     <span uib-tooltip-html="get.tooltipContent">other Contents</span>
</div>

Для получения дополнительной информации, пожалуйста, проверьте здесь

Ответ 20

Использование .html() вместо .text() работало для меня. Например

.html("This is a first line." + "<br/>" + "This is a second line.")

Ответ 21

Просто используйте код объекта &#xA; для переноса строки в атрибуте заголовка.

<a title="First Line &#xA;Second Line">Hover Me </a>

Ответ 22

Просто добавьте этот фрагмент кода в ваш скрипт:

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

и, как уже упоминалось в ответах выше, data-html должен быть "true". Это позволит вам использовать HTML-теги и форматирование внутри значения атрибута title.

Ответ 23

просто используйте \n в заголовке и добавьте этот CSS

.tooltip-inner {
    white-space: pre-wrap;
}