How can I set the tooltip to show/hide programmatically? right not it only supports hover or click show action.
---
ADMIN EDIT
You can Follow a way to hide the tooltip programmatically here: https://feedback.telerik.com/blazor/1476364-close-tooltip-via-method.
You can find a way to hack the show event by triggering a JS click in this KB article: https://docs.telerik.com/blazor-ui/knowledge-base/common-validation-error-in-tooltip.
Here is an example that shows how you can trigger the tooltip to show for a particular target:
@inject IJSRuntime _js
<script suppress-error="BL9992">
function triggerTooltip(index, selector, showOnClick) {
var targets = document.querySelectorAll(selector);
if (targets && targets.length >= index) {
var desiredTarget = targets[index];//feel free to get the desired target in any other way
setTimeout(function () {
var evt = document.createEvent('MouseEvent');
var evtToSimulate = showOnClick ? "click" : "mouseenter";
evt.initEvent(evtToSimulate, true, false);
desiredTarget.dispatchEvent(evt);
}, 20);
}
}
</script>
<TelerikButton OnClick="@( async () => await TriggerTooltip(0) )">Trigger tooltip for the first target</TelerikButton>
<TelerikButton OnClick="@( async () => await TriggerTooltip(1) )">Trigger tooltip for the SECOND target</TelerikButton>
<TelerikTooltip TargetSelector="@ttipTargetSelector" ShowOn="@ShowOnSetting">
</TelerikTooltip>
<p id="my-targets">
<strong title="what is 'lorem ipsum'?">lorem</strong>
ipsum dolor
<strong title="is this a real word?">sit</strong>
amet.
</p>
@code{
string ttipTargetSelector = "p#my-targets [title]";
TooltipShowEvent ShowOnSetting { get; set; } = TooltipShowEvent.Click;
async Task TriggerTooltip(int targetIndex)
{
await _js.InvokeVoidAsync("triggerTooltip",
targetIndex,
ttipTargetSelector,
ShowOnSetting == TooltipShowEvent.Click ? true : false
);
}
}
---
I would like to be able to do something like the following - cause the tooltip to close from my code:
<TelerikTooltip TargetSelector="#tooltip1" ShowOn="@TooltipShowEvent.Click" @ref="@TooltipRef">
<Template>
Content Here
<button type="button" class="btn btn-primary" @onclick="tipClose">Save</button>
</Template>
</TelerikTooltip>
<a href="#" id="tooltip1" class="btn btn-secondary">open</a>
@code{
Telerik.Blazor.Components.TelerikTooltip TooltipRef { get; set; }
void tipClose()
{
// TooltipRef ?
}
}
Please consider the ToolTip's ability to track changes in its target and update its own position accordingly.
A good example for this is the integration between the ToolTip and the Slider drag handle.
Is there a way to add some delay to the TelerikTooltip component show event? I would like to force the user to hover in the element for a couple of seconds before he can see the tooltip.
Like in the ajax tooltip demo.
Unfortunately the tooltip component does only work for elements that are present at first rendering.
If elements are surrounded by an if-condition which becomes true at a later point in time, the tooltip is not displayed.
Our usecase: We have tables where some data is computed after displaying the rest of the table. The computing and displaying works and the title is there (and shown in the default windows tooltip) but the Telerik tooltip is not displayed.
I want to have an option to prevent tooltips from closing and having multiple tooltips attached to different elements, all visible simultaneously/independently.
There's no way for me to specify a tooltip with both Hover and Click support.
I would like my tooltip to work for both desktop and mobile. Is there any way to do this?
This is what I'm doing now:
<TelerikTooltip ShowOn="@TooltipShowEvent.Click" TargetSelector="@("#val" + FieldName)" />
Here's what I'm looking to do:
<TelerikTooltip ShowOn="@TooltipShowEvent.Both" TargetSelector="@("#val" + FieldName)" />
---
ADMIN EDIT
This feature most probably will introduce a breaking change.
You can workaround this with using multiple TelerikTooltip declarations.
Check the attached file to see a sample implementation.
---
When I have some dynamic content inside the tooltip template, the tooltip seems not to be re-rendering. E.g. when I have a tooltip with a text input and button and wish to disable the button when no text is entered, the tooltip seems to be only refreshing after closing and re-opening it. Simplified example:
<TelerikTooltip TargetSelector=".search-tooltip" Position="TooltipPosition.Bottom" ShowOn="TooltipShowEvent.Click">
<Template>
<TelerikTextBox @bind-Value="@SearchText"></TelerikTextBox>
<TelerikButton OnClick="@Search" Enabled="@(!string.IsNullOrEmpty(SearchText))">Search</TelerikButton>
</Template>
</TelerikTooltip>
Even tried using the ValueChanged event of the TelerikTextBox and calling the StateHasChanged() method but had the same result (the enabled/disabled state of button only changed after closing&re-opening the tooltip).
I would expect the binding and re-rendering to work as normally in Blazor. Is there a way to manually 'call refresh' on the tooltip?