问题:鼠标在下拉框中点击选择时,前面的几个都可以被获取然后赋值到输入框中,但是最后一个不行。好像是click事件和blur事件冲突,才导致最后一个不能获取赋值。代码和示例如下,jquery代码该如何优化才行?
<input type="text" id="input1" value="xx"/>
<ul id="pulldown">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
(function($){
$("#input1").focus(function(){
$("#input1").css({"text-align":"center"});
$("#pulldown").slideDown(300);
}).blur(function(){
$("#pulldown").slideUp(300);
});
$("#pulldown>li").click(function(){
$("#input1").val($(this).text());
});
})(jQuery);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
(function($){
$("#input1").focus(function(){
$("#input1").css({"text-align":"center"});
$("#pulldown").slideDown(300);
}).blur(function(){
setTimeout(function () {
$("#pulldown").slideUp(300);
}, 300);
});
$("#pulldown>li").click(function(){
$("#input1").val($(this).text());
});
})(jQuery);
最后一个点击无效,是因为点击最后一个li的时候,先执行的是blur事件,所以#pluudown
收缩了,click不到最后一个li;