#asp.net-core #blazor-client-side #blazor-webassembly
#asp.net-core #blazor-на стороне клиента #blazor-webassembly
Вопрос:
Рассмотрите следующее в Blazor WebAssembly:
<span @onclick="Click" @ondblclick="DoubleClick">Click Me!</span>
@code {
private void Click()
{
Console.WriteLine("Click");
}
private void DoubleClick()
{
Console.WriteLine("Double-click");
}
}
Если я дважды щелкну элемент, то в консоли я увижу:
Click
Click
Double-click
Есть ли способ получить событие двойного щелчка без запуска 2 событий с одним щелчком мыши? Я хочу использовать оба события для разных целей, и из-за этого они мешают друг другу.
Любые предложения приветствуются.
Ответ №1:
Вероятно, это связано с тем, как работает ondblclick
событие. Цитата из MDN:https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/ondblclick
Событие dblclick возникает, когда пользователь дважды щелкает элемент. Оно запускается после двух событий щелчка.
Итак, вы видите, как это работает :
Поэтому вам, возможно, придется запускать действие с одним щелчком мыши после небольшой задержки, если за это время не произойдет событие двойного щелчка.
Комментарии:
1. Справедливо, это не должно иметь большого значения для этого. Я надеялся, что я мог бы добавить какой-нибудь тег, который сделал бы это за меня!
2. Хотя я мог бы реализовать предложение с задержкой, я бы не стал точно описывать это как удобное. Вы это реализовали? С таймерами и всем остальным? Или с проверкой регистра щелчков в dblclick? Просто любопытно.