首页 新闻 会员 周边

如何改变jquery的事件触发顺序

0
[已解决问题] 解决于 2017-10-12 17:35

我在前台写了一个input,随后有一个隐藏的ul

<input id="typein" />
<ul id="candlist" style="display:none;list-style:none;">
     <li id="kd">kd</li>
     <li>ld</li>
</ul>

然后在jquery里写

 1 <script>
 2      var typein = $("#typein");
 3      var candlist = $("#candlist");
 4      //输入框变化时ul显示出来
 5     typein.keyup(function () {
 6            candlist.show();
 7     });
 8     //点击li,将其文本写入input框
 9     $("#kd").click(function(){
10            typein.val($("#kd").text());
11     });
12     //input框失去焦点时ul隐藏
13     typein.blur(function(){
14           candlist.hide();
15     });
16 </script>

注释掉blur()方法后,点击kd是可以填充input框的。

现在的问题是blur()发生在click之前,貌似click还没down,blur就已经发生了

请问如何让blur发生在click之后呢?

方法嵌套我试了貌似没什么用

问题补充:

自己写完了,其实这是我是在mvc里做的一个简易版的autocomplete

贴上我的GitHub相关文档:https://github.com/Destiny130/Study-Log/blob/master/2017/Oct/17-10-12.txt

Destiny130的主页 Destiny130 | 菜鸟二级 | 园豆:208
提问于:2017-10-11 18:04
< >
分享
最佳答案
0

最简单的方法:把click改成mousedown(http://yuanbian007.iteye.com/blog/1853722

还有:加延迟(http://imshusheng.com/qianduan/4.html

奖励园豆:5
hehe_54321 | 小虾三级 |园豆:750 | 2017-10-12 08:18

谢谢!第一个方法很有用

Destiny130 | 园豆:208 (菜鸟二级) | 2017-10-12 15:37
其他回答(3)
0

你的思路是有问题的  input失去焦点ul隐藏 那你到哪里输入呢?

应该是input重新获得焦点时ul隐藏 你想一想是不是 input和ul是两个元素 你输入时焦点已经离开了input

HaiLiangFeng | 园豆:228 (菜鸟二级) | 2017-10-12 09:25

呃,ul被隐藏和我的输入有什么关系?再input输入时焦点肯定在input上啊

支持(0) 反对(0) Destiny130 | 园豆:208 (菜鸟二级) | 2017-10-12 15:37
0

<script>
     var typein = $("#typein");
     var candlist = $("#candlist");
     //输入框变化时ul显示出来
    typein.keyup(function () {
           candlist.show();
    });
    //点击li,将其文本写入input框
    $("#kd").click(function(){
           typein.val($("#kd").text());

           candlist.hide();
    });
</script>

理论上,还要再加一个点击其它地方隐藏掉下拉框的功能。

陈子 | 园豆:241 (菜鸟二级) | 2017-10-12 09:54

写了啊,blur()函数就是失去焦点时隐藏下拉框的

支持(0) 反对(0) Destiny130 | 园豆:208 (菜鸟二级) | 2017-10-12 15:35
0

在触发之前用setTimeout延迟10

 

http://www.cnblogs.com/liao1992/articles/7651060.html 

 

或者你可以看看我这篇  虽然有点简陋 但是是我零时写的  改改还是能用的

blurs | 园豆:660 (小虾三级) | 2017-10-12 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册