Estoy creando mi propia entrada de autocompletar en Blazor. (algo como abajo)
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>Cuando hago clic en el elemento de la lista, se activa el evento onfocusout en lugar del evento onclick. ¿Hay alguna manera de "empujar" el evento onclick?
Esta no es una relación padre-hijo, por lo que "stopPropagation" no tiene efecto. También sé que hay una datalist de lista de datos, pero no la estoy usando debido a la forma en que se ve, se siente y se comporta en los diferentes navegadores.
El problema es que el orden de los eventos es OnMouseDown , OnFocusOut , OnClick .
Debido a esto, su menú desplegable se cierra antes del evento OnClick , por lo que el clic no se registra.
Una solución funcional es reemplazar OnClick con OnMouseDown .
Basado en esta respuesta de @DuncanLuk.