JavaScript如何等待处理点击事件

时间:2015-04-19 10:59:26

标签: javascript jquery ajax razor combobox

我正在编写一个组合框,它从数据库中获取包含输入到输入框中的文本的电影列表。当用户在输入框中选择时,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>

和组合框行的代码:

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

0 个答案:

没有答案