我有一个输入字段,在这里我尝试提出自动完成建议。代码看起来像
<input type="text" id="myinput">
<div id="myresults"></div>
在输入blur()
事件中,我想隐藏结果的div:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
当我在输入中写入内容时,我向服务器发送请求并获得json响应,将其解析为ul-> li结构并将此ul放入我的#myresults
div中。
当我单击此已解析的li元素时,我想将li的值设置为input并隐藏#myresults
div
$("#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