JQuery всплывающая подсказка добавить разрыв строки

Почему бы и нет?

(linesProcessed / TimeTaken) (timetaken / linesProcessed) * LinesLeft = TimeLeft

TimeLeft будет выражаться в любой единице времени timeTaken.

Edit:

Спасибо за комментарий, который вы правы, это должно быть:

(TimeTaken / linesProcessed) * linesLeft = timeLeft

, поэтому мы имеем

(10 / 100) * 200 = 20 секунд сейчас 10 секунды идут мимо (20 / 100) * 200 = 40 секунд осталось еще 10 секунд, и мы обрабатываем еще 100 строк (30 / 200) * 100 = 15 секунд, и теперь мы все видим, почему диалог копирования файла перескакивает с 3 часов до 30 минут :-)

23
задан KyleMit 18 September 2013 в 21:00
поделиться

8 ответов

Вы можете использовать опцию «content» виджета подсказки. См. Также:

http://jqueryui.com/tooltip/#custom-content

Краткий пример:

  $(function() {
    $( document ).tooltip({
      content: function() {
        return 'foo'
      }
    });
  });
10
ответ дан Teun Lassche 18 September 2013 в 21:00
поделиться

Есть чистое решение CSS. Используйте \ n для перевода строки и добавьте этот стиль CSS:

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

Вы также можете использовать предварительную или предварительную переноску вместо предварительной строки, если вы хотите сохранить пробелы. См. https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

.
50
ответ дан zooglash 18 September 2013 в 21:00
поделиться

Это мой трюк, чтобы сделать это с последними jquery / jqueryui (при условии, что все элементы, которые вы хотите иметь во всплывающих подсказках, имеют класс 'jqtooltip', у них есть теги заголовка, а заголовок имеет символ канала для разделителя строк:

$('.jqtooltip').tooltip({ 
  content: function(callback) { 
     callback($(this).prop('title').replace('|', '<br />')); 
  }
});
15
ответ дан ScottRFrost 18 September 2013 в 21:00
поделиться

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

14
ответ дан Ravi Gadag 18 September 2013 в 21:00
поделиться

Вы можете ввести свой HTML-код непосредственно в атрибут Title и затем просто вызвать следующее:

$(document).tooltip({
  content: function (callback) {
     callback($(this).prop('title'));
  }
});

Таким образом, ваш HTML-код отображается вместо экранированного и буквально написанного.

4
ответ дан JDandChips 18 September 2013 в 21:00
поделиться

лучше использовать это:

$(document).tooltip({
   content: function () {
     return $( this ).prop( 'title' ).replace( '|', '<br />' );
   }
});

с function(callback) У меня была проблема с подсказками, которые не были близки

3
ответ дан ViRuSTriNiTy 18 September 2013 в 21:00
поделиться

Я использовал это:

        $("[title]").each(function(){
            $(this).tooltip({ content: $(this).attr("title")});
        });

Это означает, что все элементы с атрибутом title будут использовать подсказку jquery, а содержимое подсказки будет использовать значение атрибута title. Содержание позволяет HTML.

2
ответ дан Ronen Festinger 18 September 2013 в 21:00
поделиться

Я пошел с измененной версией ответа Скотта Фроста. Проблема с его примером заключается в том, что .replace заменяет только первый экземпляр символа в строке. Вот модифицированная версия, которая будет использовать регулярное выражение / g (global) для изменения всех вхождений символа во всей строке.

$('.jqtooltip').tooltip({ 
   content: function (callback) {
      callback($(this).prop('title').replace(new RegExp("\\|", "g"), '<br />'));
   }
});
2
ответ дан LukeP 18 September 2013 в 21:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: