@@ -46,57 +46,46 @@ To ensure tooltips are displayed only when text is ellipsed, use JavaScript to c
4646``` razor 
4747@inject IJSRuntime JS 
4848
49- <script suppress-error="BL9992"> 
50-     window.isTextOverflowing = () => { 
51-         const el = document.querySelector('.example-cb .k-input-inner'); 
52-         if (!el) { 
53-             return; 
54-         } 
55-          
56-         return el.scrollWidth > el.clientWidth; 
57-     }; 
58- </script> 
59- 
6049@if (SelectedHobbyId != 0) 
6150{ 
62-     <TelerikTooltip TargetSelector="#products-multiselect[title]"/> 
51+     <TelerikTooltip TargetSelector="#products-multiselect[title]"  /> 
6352} 
6453
6554@{ 
66-     <span 
67-     id="@(IsCurrentOverflowing ? "products-multiselect" : "products-multiselect-none")" 
68-     @onmouseenter="OnMouseEnter" 
69-     title="@CurrentHobbyName"> 
55+     <span id="@(IsCurrentOverflowing ? "products-multiselect" : "products-multiselect-none")" 
56+           @onmouseenter="OnMouseEnter" 
57+           title="@CurrentHobbyName"> 
7058        <TelerikComboBox @bind-Value="@SelectedHobbyId" 
71-                     Data="@Hobbies" 
72-                     Placeholder="Select your favourite sport..." 
73-                     TextField="@nameof(HobbiesDto.HobbyName)" 
74-                     ValueField="@nameof(HobbiesDto.HobbyId)" 
75-                     Filterable="true" 
76-                     Width="20%" 
77-                     Class="example-cb"> 
59+                           Data="@Hobbies" 
60+                           Placeholder="Select your favourite sport..." 
61+                           TextField="@nameof(HobbiesDto.HobbyName)" 
62+                           ValueField="@nameof(HobbiesDto.HobbyId)" 
63+                           Filterable="true" 
64+                           Width="20%" 
65+                           Class="example-cb"> 
7866        </TelerikComboBox> 
7967    </span> 
8068} 
8169
82- @code { 
83-     public int SelectedHobbyId { get; set; } 
70+ @* suppress-error allows script tags inside Razor components. 
71+    Move the script to an external file in production apps. *@ 
72+ <script suppress-error="BL9992"> 
73+     window.isTextOverflowing = () => { 
74+         const el = document.querySelector('.example-cb .k-input-inner'); 
75+         if (!el) { 
76+             return; 
77+         } 
78+ 
79+         return el.scrollWidth > el.clientWidth; 
80+     }; 
81+ </script> 
8482
83+ @code { 
84+     private int SelectedHobbyId { get; set; } 
8585    private bool IsCurrentOverflowing { get; set; } = false; 
8686    private string CurrentHobbyName => FindCurrentHobby()?.HobbyName; 
8787
88-     private async Task OnMouseEnter() { 
89-         @if (SelectedHobbyId != 0) { 
90-             IsCurrentOverflowing = await JS.InvokeAsync<bool>("isTextOverflowing"); 
91-         } 
92-     } 
93- 
94-     public HobbiesDto? FindCurrentHobby()  
95-     { 
96-         return Hobbies.FirstOrDefault(x => x.HobbyId == SelectedHobbyId); 
97-     } 
98- 
99-     public IEnumerable<HobbiesDto> Hobbies { get; set; } = new List<HobbiesDto>() 
88+     private IEnumerable<HobbiesDto> Hobbies { get; set; } = new List<HobbiesDto>() 
10089    { 
10190        new HobbiesDto(1, "This is a test for a very very very very long sentance."), 
10291        new HobbiesDto(2, "This is some long test sentance."), 
@@ -106,6 +95,19 @@ To ensure tooltips are displayed only when text is ellipsed, use JavaScript to c
10695        new HobbiesDto(6, "Football"), 
10796    }; 
10897
98+     private async Task OnMouseEnter() 
99+     { 
100+         @if (SelectedHobbyId != 0) 
101+         { 
102+             IsCurrentOverflowing = await JS.InvokeAsync<bool>("isTextOverflowing"); 
103+         } 
104+     } 
105+ 
106+     private HobbiesDto? FindCurrentHobby() 
107+     { 
108+         return Hobbies.FirstOrDefault(x => x.HobbyId == SelectedHobbyId); 
109+     } 
110+ 
109111    public class HobbiesDto 
110112    { 
111113        public HobbiesDto(int id, string name) 
@@ -122,25 +124,14 @@ To ensure tooltips are displayed only when text is ellipsed, use JavaScript to c
122124
123125### MultiSelect Implementation  
124126
125- 1 .  Use the ` TagTemplate `  to customize the display of tags in the MultiSelect.
127+ 1 .  Use the [ ` TagTemplate ` ] ( slug:multiselect-templates#tag-template )  to customize the display of tags in the MultiSelect.
1261282 .  Use JavaScript to determine overflow and set the tooltip.
127129
128130> caption Display a Tooltip for Overflowing MultiSelect Items
129131
130132``` razor 
131133@inject IJSRuntime JS 
132134
133- <script suppress-error="BL9992"> 
134-     window.isTextOverflowing = (id) => { 
135-         const el = document.getElementById(id); 
136-         if (!el) { 
137-             return false; 
138-         } 
139-          
140-         return el.scrollWidth > el.clientWidth; 
141-     }; 
142- </script> 
143- 
144135<TelerikTooltip TargetSelector=".example-ms .k-chip-label[title]"> 
145136    <Template> 
146137        @{ 
@@ -169,21 +160,30 @@ To ensure tooltips are displayed only when text is ellipsed, use JavaScript to c
169160            class="k-chip-label" 
170161            @onmouseenter="() => OnHoverHandler(context.HobbyId)" 
171162            id="item @context.HobbyId" 
172-             title="@title "> 
163+             title="@itemTitle "> 
173164                @context.HobbyName 
174165            </span> 
175166        </span> 
176167    </TagTemplate> 
177168</TelerikMultiSelect> 
178169
179- @code { 
180-     private async Task OnHoverHandler(int id) 
181-     { 
182-         IsItemOverflowing = await JS.InvokeAsync<bool>("isTextOverflowing", $"item {id}"); 
183-     } 
170+ @* suppress-error allows script tags inside Razor components. 
171+    Move the script to an external file in production apps. *@ 
172+ <script suppress-error="BL9992"> 
173+     window.isTextOverflowing = (id) => { 
174+         const el = document.getElementById(id); 
175+         if (!el) { 
176+             return false; 
177+         } 
178+          
179+         return el.scrollWidth > el.clientWidth; 
180+     }; 
181+ </script> 
184182
183+ @code { 
185184    private bool IsItemOverflowing { get; set; } 
186185    private List<int> SelectedHobbyIds { get; set; } 
186+ 
187187    private IEnumerable<HobbiesDto> Hobbies { get; set; } = new List<HobbiesDto>() 
188188    { 
189189        new HobbiesDto(1, "This is a test for a very very very very long sentance."), 
@@ -194,6 +194,11 @@ To ensure tooltips are displayed only when text is ellipsed, use JavaScript to c
194194        new HobbiesDto(6, "Football"), 
195195    }; 
196196
197+     private async Task OnHoverHandler(int id) 
198+     { 
199+         IsItemOverflowing = await JS.InvokeAsync<bool>("isTextOverflowing", $"item {id}"); 
200+     } 
201+ 
197202    public class HobbiesDto 
198203    { 
199204        public int HobbyId { get; set; } 
@@ -217,6 +222,6 @@ To ensure tooltips are displayed only when text is ellipsed, use JavaScript to c
217222
218223-  [ ComboBox Overview] ( slug:components/combobox/overview ) 
219224-  [ MultiSelect Overview] ( slug:multiselect-overview ) 
220- -  [ Tooltip Configuration ] ( slug:tooltip-overview ) 
225+ -  [ Tooltip Overview ] ( slug:tooltip-overview ) 
221226-  [ JavaScript scrollWidth Documentation] ( https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollWidth ) 
222227-  [ JavaScript clientWidth Documentation] ( https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth ) 
0 commit comments