JavaScript如何等待处理单击事件

JavaScript如何等待处理单击事件,javascript,jquery,ajax,razor,combobox,Javascript,Jquery,Ajax,Razor,Combobox,我正在编写一个组合框,它从包含输入框中键入的文本的数据库中获取电影列表。当用户在输入框中选择时,comboxbox应该是一个下拉列表,当输入框失去焦点时,comboxbox应该隐藏。问题是,当用户单击一个项目来选择它时,输入将失去焦点,组合框隐藏,单击丢失。所以我想在隐藏组合框之前等待所有的点击被处理。我添加了一个seTimeout do延迟隐藏1s,但这不是很好,因为1s有点长,较低的值可能会使组合框在单击之前隐藏。这是我的密码: <script> function mak

我正在编写一个组合框,它从包含输入框中键入的文本的数据库中获取电影列表。当用户在输入框中选择时,comboxbox应该是一个下拉列表,当输入框失去焦点时,comboxbox应该隐藏。问题是,当用户单击一个项目来选择它时,输入将失去焦点,组合框隐藏,单击丢失。所以我想在隐藏组合框之前等待所有的点击被处理。我添加了一个seTimeout do延迟隐藏1s,但这不是很好,因为1s有点长,较低的值可能会使组合框在单击之前隐藏。这是我的密码:

<script>
    function make_combobox() {
        $.get("/Clients/make_movies_table", { search_str: mov_text_sel.value }, function (data, status)
        {
            mov_sel.innerHTML=data;
        });
        $("#mov_sel").show();
    }

    function hide_combobox() {
        setTimeout(function () {
            $('#mov_sel').hide();
        }, 1000);
        window.
    }


</script>

<input type="text" id="mov_text_sel" size="10" 
       onfocus="make_combobox()"
       oninput="make_combobox()"
       onblur="hide_combobox()"
/>
<div style="position:relative">
    <div id="mov_sel">
    </div>
</div>

函数make_combobox(){
$.get(“/Clients/make_movies_table”,{search_str:mov_text_sel.value},函数(数据,状态)
{
mov_sel.innerHTML=数据;
});
$(“mov#u sel”).show();
}
函数hide_combobox(){
setTimeout(函数(){
$('mov#u sel').hide();
}, 1000);
窗户。
}
以及组合框行的代码:

   <td class="combobox"
         onmouseover="this.style.backgroundColor = 'RoyalBlue'"
         onmouseout="this.style.backgroundColor = 'white'"
         onclick="mov_text_sel.value = '@rec.Title'">
         @rec.Title
   </td>

@记录标题

单击丢失是什么意思?很难理解您想要什么。因为组合框是隐藏的,所以不会处理单击。