我正在 Blazor 中創建自己的自動完成輸入。(類似于下面的東西)
function FocusOut()
{
document.getElementById("list-item-one").innerHTML = "Focus out";
}
function Click()
{
document.getElementById("list-item-one").innerHTML = "Click";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="search" onfocusout="FocusOut()" />
<ul class="dropdown">
<li id="list-item-one" onclick="Click()">List Item One</li>
</ul>
當我單擊串列項時,將觸發 onfocusout 事件而不是 onclick 事件。有沒有辦法“推送” onclick 事件?
這不是父子關系,因此“stopPropagation”無效。我也知道有一個datalist標簽,但我沒有使用它,因為它在不同瀏覽器中的外觀、感覺和行為方式。
uj5u.com熱心網友回復:
問題是事件的順序是OnMouseDown, OnFocusOut, OnClick。
因此,您的下拉選單會在OnClick事件發生之前關閉,因此不會注冊點擊。
一個可行的解決方案是替換OnClick為OnMouseDown.
基于@DuncanLuk 的這個回答。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363777.html
標籤:javascript html 查询 西装外套 blazor-webassembly
下一篇:使用引導程式驗證重置整個表單
