Возможно, вы можете окружить диапазон другим диапазоном, а затем просто проверить, больше ли ширина исходного / внутреннего диапазона, чем ширина нового / внешнего диапазона. Обратите внимание, что я говорю, возможно, - это примерно основано на моей ситуации, когда у меня было span
внутри td
, поэтому я на самом деле не знаю, будет ли он работать с span
внутри span
,
Вот мой код для тех, кто может оказаться в положении, аналогичном моему; Я копирую / вставляю это без изменений, даже если это в угловом контексте, я не думаю, что это умаляет удобочитаемость и основную концепцию. Я кодировал его как метод обслуживания, потому что мне нужно было применять его более чем в одном месте. Селектор, который я передавал, был селектором класса, который будет соответствовать нескольким экземплярам.
CaseService.applyTooltip = function(selector) {
angular.element(selector).on('mouseenter', function(){
var td = $(this)
var span = td.find('span');
if (!span.attr('tooltip-computed')) {
//compute just once
span.attr('tooltip-computed','1');
if (span.width() > td.width()){
span.attr('data-toggle','tooltip');
span.attr('data-placement','right');
span.attr('title', span.html());
}
}
});
}