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