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 ?
}
}
Solution for hiding tooltip after 2 seconds with Telerik Version 3.7.0
<TelerikTooltip Id="@Id"
@ref="TelerikTooltipRef"
Class="clipboard-tooltip"
TargetSelector="@("#" + Id + ".copy-button")"
ShowOn="TooltipShowEvent.Click">
<div class="copy-button" id="@Id" @onclick="CopyTextToClipboard">
</div>@code {
[Parameter, EditorRequired]
public string Id { get; set; }private TelerikTooltip TelerikTooltipRef { get; set; }
private async Task CopyTextToClipboard()
{
await JSRuntime.InvokeVoidAsync("ShowElement", ".clipboard-tooltip", "#" + TelerikTooltipRef.Id);
await JSRuntime.InvokeVoidAsync("window.clipboardCopy.copyText", TextToCopy);
await Task.Delay(2000);
await JSRuntime.InvokeVoidAsync("HideElement", ".clipboard-tooltip", "#" + TelerikTooltipRef.Id);
}}
<script suppress-error="BL9992">function HideElement(className, id) {
let inputs = document.querySelectorAll(className);
inputs.forEach(element => {
if (element.querySelector(id) !== null) {
debugger;
element.style.display = "none"
}
});
}
function ShowElement(className, id) {
let inputs = document.querySelectorAll(className);
inputs.forEach(element => {
if (element.querySelector(id) !== null && element.style.display === "none") {
element.style.display = "block"
}
});
}
</script>
I would also be in need of having the possibility to close the tooltip via code.