原因:由于JavaScript为单线程,同一时间只能执行处理一个事件。“blur优先于click执行”。而在本示例中,由于blur处理程序,会将对下拉框展示区隐藏,所以导致其后续click事件并不会执行。
解决方案1:对blur事件进行延迟,让click先执行。
$("input").blur(function(){
setTimeout(function(){
// input框失去焦点要做的事情
}, 300);
});
// 选择对应选项,并赋值给input框
$(".search-list li a").click(function(){
console.log("执行");
});