Почему бы и нет?
(linesProcessed / TimeTaken)
(timetaken / linesProcessed) * LinesLeft = TimeLeft
TimeLeft
будет выражаться в любой единице времени timeTaken
.
Спасибо за комментарий, который вы правы, это должно быть:
(TimeTaken / linesProcessed) * linesLeft = timeLeft
, поэтому мы имеем
(10 / 100) * 200
= 20 секунд сейчас 10 секунды идут мимо (20 / 100) * 200
= 40 секунд осталось еще 10 секунд, и мы обрабатываем еще 100 строк (30 / 200) * 100
= 15 секунд, и теперь мы все видим, почему диалог копирования файла перескакивает с 3 часов до 30 минут :-)
Вы можете использовать опцию «content» виджета подсказки. См. Также:
http://jqueryui.com/tooltip/#custom-content
Краткий пример:
$(function() {
$( document ).tooltip({
content: function() {
return 'foo'
}
});
});
Есть чистое решение CSS. Используйте \ n для перевода строки и добавьте этот стиль CSS:
.ui-tooltip {
white-space: pre-line;
}
Вы также можете использовать предварительную или предварительную переноску вместо предварительной строки, если вы хотите сохранить пробелы. См. https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
.Это мой трюк, чтобы сделать это с последними jquery / jqueryui (при условии, что все элементы, которые вы хотите иметь во всплывающих подсказках, имеют класс 'jqtooltip', у них есть теги заголовка, а заголовок имеет символ канала для разделителя строк:
$('.jqtooltip').tooltip({
content: function(callback) {
callback($(this).prop('title').replace('|', '<br />'));
}
});
просто используйте сущность
для разрыва строки в атрибуте title.
Вы можете ввести свой HTML-код непосредственно в атрибут Title и затем просто вызвать следующее:
$(document).tooltip({
content: function (callback) {
callback($(this).prop('title'));
}
});
Таким образом, ваш HTML-код отображается вместо экранированного и буквально написанного.
лучше использовать это:
$(document).tooltip({
content: function () {
return $( this ).prop( 'title' ).replace( '|', '<br />' );
}
});
с function(callback)
У меня была проблема с подсказками, которые не были близки
Я использовал это:
$("[title]").each(function(){
$(this).tooltip({ content: $(this).attr("title")});
});
Это означает, что все элементы с атрибутом title будут использовать подсказку jquery, а содержимое подсказки будет использовать значение атрибута title. Содержание позволяет HTML.
Я пошел с измененной версией ответа Скотта Фроста. Проблема с его примером заключается в том, что .replace заменяет только первый экземпляр символа в строке. Вот модифицированная версия, которая будет использовать регулярное выражение / g (global) для изменения всех вхождений символа во всей строке.
$('.jqtooltip').tooltip({
content: function (callback) {
callback($(this).prop('title').replace(new RegExp("\\|", "g"), '<br />'));
}
});