我正在尝试实现结果,当我在输入内部输入时,列表将下拉。 如果单击列表,则会发出警报。 同时如果输入是焦点输出,它将隐藏列表。 但问题是,当点击时,它不起作用。
$("input").on("keyup",function(){
$(".abc li").show();
});
$(".abc li").on("click",function(){
alert("123");
});
$("input").focusout(function(){
$(".abc").find("li").hide();
});
答案 0 :(得分:3)
您的点击事件永远不会被调用,因为li
事件会隐藏focusout
,然后才能触发。
您可以设置超时以允许注册点击:
$("input").focusout(function () {
setTimeout(function () {
$(".abc").find("li").hide()
}, 100)
});
答案 1 :(得分:0)
设置(短)模糊时间(焦点)怎么样?
像这样:
$("input").on("keyup",function(){
$(".abc li").show();
});
$(".abc li").on("click",function(){
alert("123");
});
$("input").focusout(function(){
setTimeout(function(){$(".abc").find("li").hide();}, 150);//i set 150 just as example
});
问题是首先出现模糊,此时元素被隐藏,鼠标事件被传递给其他(可见)元素。