Можно ли добавить html внутри атрибута заголовка?

#javascript #jquery #html

Вопрос:

Есть ли способ поместить фактический html-код внутри атрибута заголовка в элементе строки таблицы? Моя цель-показать не только текст, но и некоторую информационную графику вместе с ним, поэтому событие наведения курсора мыши, которое не является модальным, было бы здорово. Я иду не в том направлении?

В этой таблице уже используются таблицы данных jquery, но я не верю, что она может выполнять такого рода события.

 <tr title='This activity will be open to registration on April 31st' >
.....
</tr>
 

Комментарии:

1. Вы пробовали использовать всплывающую подсказку для загрузки?

2. это не тег заголовка. Это атрибут. Вы не можете поместить HTML в атрибут.

3. Да, можно поместить html-строку внутри атрибута заголовка(если она правильно экранирована). Однако html не будет отображаться в качестве всплывающей подсказки, вместо этого вы получите html-строку. Вам придется перехватить подсказку (или заменить ее) решением javascript или css, которое показывает и скрывает элемент, содержащий нужный html.

4. Ты пробовал? что случилось?

Ответ №1:

Нет. Вам нужно будет создать свою собственную замену заголовка с помощью JavaScript.

Ответ №2:

Нет.

HTML не может быть помещен в атрибут.

Если цель состоит в том, чтобы иметь всплывающее окно с богатым контентом, то вам нужно обработать это с помощью javascript. Кроме того, с точки зрения доступности, вы, вероятно, все равно не захотите помещать такое количество контента в атрибут title, поэтому использование маршрута JS решит для вас несколько проблем. Google «Подсказка JS» для десятков вариантов.

Ответ №3:

Собственные всплывающие подсказки не используют HTML. Всплывающие подсказки пользовательского интерфейса jQuery были бы здесь очень полезны.

Демо: http://jqueryui.com/tooltip/

ИЗМЕНИТЬ: Вам нужно будет использовать опцию содержимого, чтобы использовать разметку вместо атрибута заголовка.

 $(".text")
    .tooltip({ content: '<b style="color: red">Tooltip</b> <i>text</i>' });
 

Вот скрипка, демонстрирующая это: http://jsfiddle.net/acbabis/64Q2m/

Комментарии:

1. похоже, не работает с jqueryui 1.8.23 — может быть, более поздние версии поддерживают html? (на самом деле у меня есть ряд проблем — например, я не могу также настроить контент)

2. @ryan2johnson9 Похоже .tooltip , что он был добавлен в версии 1.9 jQueryUI, так что ваше предположение верно. api.jqueryui.com/tooltip

3. Ну, у меня есть доступный мне метод .tooltip, и он действительно изменяет стиль всплывающей подсказки, я просто не могу установить содержимое, а также он неправильно отображает html. Может быть, это было улучшение в 1.9, не уверен.

4. Тоже не уверен, @ryan2johnson9. Одна вещь, которую вы можете попробовать, — это вызвать .tooltip , а затем вызвать .html дочерний элемент

5. глупый я — у меня также установлена начальная загрузка, поэтому я думаю, что мой вызов .tooltip() использует начальную загрузку. и использование .tooltip({html:true}) работ

Ответ №4:

Вы можете использовать плагин всплывающей подсказки jquery ui для отображения пользовательского заголовка

Ответ №5:

Нет прямого способа отобразить HTML — код, написанный внутри всплывающей подсказки. Однако, если вы используете jQueryUI (или, если можете), то приведенный ниже код покажет HTML-эффект (визуализацию), а не HTML-код во всплывающей подсказке.

Требования: jQuery, jQueryUI.js, jQueryUI.css

HTML-код:

 <tr data-title='This activity will be open to registration on <b>April 31st</b>'>.....</tr>
 

язык JavaScript:

 $(function() {
        $( document ).tooltip({
              items: '[title], [data-title]',
              track:true,
              content: function(){
                  var element = $( this );
                    if ( element.is( "[title]" ) ) {
                      return element.attr( "title" );
                    }
                    if ( element.is( "[data-title]" ) ) {
                      return element.attr( "data-title" );
                    }
              }
        });
});
 

Ответ №6:

Вместо того, чтобы фокусироваться на атрибуте заголовка, вложите всплывающее сообщение с тегами внутри целевого <td></td> объекта (элемент данных таблицы). Затем поместите класс в этот td для управления div с помощью CSS, сначала скрыв его, а затем сделав его содержимое видимым при наведении курсора мыши на конкретный элемент данных таблицы. Что-то вроде этого:

 <tr><td class="info-tooltip">This activity will be open to registration on April 31st <div>[ *the contents you would want to popup here* ]</div></td></tr>
 

Тогда ваш CSS может быть чем-то вроде:

 td.info-tooltip div {

display:none;

}

td.info-tooltip:hover {

position:relative;
cursor:pointer; 

}

td.info-tooltip:hover div {

position:absolute; /* this will let you align the popup with flexibility */
top: 0px; /* change this depending on how far from the top you want it to align */
left: 0px; /* change this depending on how far from the left you want it align */
display:block; 
width: 500px; /* give this your own width */

}
 

Комментарии:

1. Интересная идея, но я бы хотел, чтобы она открывалась по всей строке, а не по одному элементу td.

Ответ №7:

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

<span title="Some <b>bold words</b>" data-toggle='tooltip' data-html='true'>this has an html supported tooltip</span>

для меня это происходит автоматически, но вам, возможно, потребуется запустить его с помощью javascript.

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

Документы

Комментарии:

1. Это только в начальной версии 4?

2. Я использую загрузочную версию v3.3.7

Ответ №8:

Я думаю, что хороший вариант-поместить это содержимое в атрибут данных, что-то вроде этого:

 <div data-tooltip="Some information I want to show">
    Actual content
</div>
 

А затем напишите простой плагин jQuery, который показывает содержимое внутри элемента при наведении курсора.