Jquery使用焦点和&点击一起不起作用

时间:2014-08-15 22:48:40

标签: javascript jquery html

我正在尝试实现结果,当我在输入内部输入时,列表将下拉。 如果单击列表,则会发出警报。 同时如果输入是焦点输出,它将隐藏列表。 但问题是,当点击时,它不起作用。

$("input").on("keyup",function(){
$(".abc li").show();
});
$(".abc li").on("click",function(){
    alert("123");
});
$("input").focusout(function(){
$(".abc").find("li").hide();
});

参考我的代码 http://jsfiddle.net/8t7erade/

2 个答案:

答案 0 :(得分:3)

您的点击事件永远不会被调用,因为li事件会隐藏focusout,然后才能触发。

您可以设置超时以允许注册点击:

$("input").focusout(function () {
    setTimeout(function () {
        $(".abc").find("li").hide()
    }, 100)
});

demo

答案 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

});

问题是首先出现模糊,此时元素被隐藏,鼠标事件被传递给其他(可见)元素。