Вот что я сделал. Большинство сценариев всплывающих подсказок требуют, чтобы вы выполнили функцию, которая хранит всплывающие подсказки. Это пример jQuery:
$.when($('*').filter(function() {
return $(this).css('text-overflow') == 'ellipsis';
}).each(function() {
if (this.offsetWidth < this.scrollWidth && !$(this).attr('title')) {
$(this).attr('title', $(this).text());
}
})).done(function(){
setupTooltip();
});
Если вы не хотите проверять многоточие css, вы можете упростить, например:
$.when($('*').filter(function() {
return (this.offsetWidth < this.scrollWidth && !$(this).attr('title'));
}).each(function() {
$(this).attr('title', $(this).text());
})).done(function(){
setupTooltip();
});
У меня есть «когда», так что функция «setupTooltip» не выполняется, пока не будут обновлены все заголовки. Замените «setupTooltip» своей функцией всплывающей подсказки, а * - элементами, которые вы хотите проверить. * пройдёт через все, если вы оставите это.
Если вы просто хотите просто обновить атрибуты заголовка с помощью всплывающей подсказки браузера, вы можете упростить, например:
$('*').filter(function() {
return $(this).css('text-overflow') == 'ellipsis';
}).each(function() {
if (this.offsetWidth < this.scrollWidth && !$(this).attr('title')) {
$(this).attr('title', $(this).text());
}
});
Или без проверки на многоточие:
$.when($('*').filter(function() {
return (this.offsetWidth < this.scrollWidth && !$(this).attr('title'));
}).each(function() {
$(this).attr('title', $(this).text());
});
person
fanfavorite
schedule
30.05.2013
text-overflow:ellipsis;
вообще не работает в Firefox - см. Этот вопрос для получения дополнительной информации: stackoverflow.com/questions/4927257/ - person Spudley   schedule 29.03.2011element.offsetWidth < element.scrollWidth
согласно этому ответу. - person Martin Smith   schedule 18.04.2012text-overflow:ellipsis;
теперь работает в Firefox; он был добавлен в Firefox 7 (выпущен в сентябре 2011 г.). - person sleske   schedule 29.04.2016