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