我有一个输入字段,在这里我尝试提出自动完成建议。代码看起来像
<input type="text" id="myinput">
<div id="myresults"></div>
在输入blur()事件中,我想隐藏结果的div:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
当我在输入中写入内容时,我向服务器发送请求并获得json响应,将其解析为ul-> li结构并将此ul放入我的#myresultsdiv中。
当我单击此已解析的li元素时,我想将li的值设置为input并隐藏#myresultsdiv
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
一切都很好,但是当我单击我的li blur()事件之前会触发click()并且输入的值不会得到li的html。
我怎样才能设置click()活动blur()?
那么这种情况下为什么要使用模糊功能呢?点击功能已满足您的需求时。
—
奥怀斯·伊克巴尔
这可能不会改变事件触发的顺序,但是如果
—
veeTrain,2012年
blur在单击之后确实触发事件li,则可能不需要$("#myresults").hide()在单击处理程序中执行。似乎正在发生的事情$(this).html()是返回一个空字符串。你能log还是alert $(this).html()要确定?
@OwaisIqbal有时没有结果,有时用户不想从建议中选择任何内容,有时用户不想再使用此输入,但是我必须隐藏未使用的结果
—
Egor Sazanovich
@veeTrain处理程序中有许多操作,我只是将它们最小化以方便理解问题中的问题。ps我试图在萤火虫
—
Egor Sazanovich 2012年
blur()和click()处理程序中添加监视点,blur()结束后没有任何操作
看来您需要对功能进行排队。尝试查看此页面:stackoverflow.com/questions/1058158/…。先进先出(FIFO)部分可能与您有关
—
Patriotec