Questions tagged «onblur»

5
jQuery:在blur()事件之前触发click()
我有一个输入字段,在这里我尝试提出自动完成建议。代码看起来像 <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()?
134 jquery  click  onblur 


6
onclick()和onblur()排序问题
我有一个输入字段,显示了一个自定义下拉菜单。我想要以下功能: 当用户单击输入字段之外的任何位置时,应删除菜单。 更具体地说,如果用户单击菜单内的div,则应删除菜单,并应根据单击的div进行特殊处理。 这是我的实现: 输入字段具有一个onblur()事件,innerHTML只要用户在输入字段之外单击,便会删除菜单(通过将其父菜单设置为空字符串)。菜单内的div也具有onclick()执行特殊处理的事件。 问题在于,onclick()单击菜单时事件永远不会触发,因为输入字段onblur()会首先触发并删除菜单,包括onclick()s! 我通过将菜单div onclick()划分为onmousedown()和onmouseup()事件并在鼠标按下时设置了全局标记(在鼠标按下时清除)来解决了该问题,类似于此答案中的建议。因为onmousedown()在之前触发onblur(),所以onblur()如果单击菜单div之一将在该标志中设置,但是如果单击屏幕上的其他位置则不会设置该标志。如果单击onblur()了菜单,那么我将立即返回而不删除菜单,然后等待onclick()触发,此时我可以安全地删除菜单了。 有没有更优雅的解决方案? 代码看起来像这样: <div class="menu" onmousedown="setFlag()" onmouseup="doProcessing()">...</div> <input id="input" onblur="removeMenu()" ... /> var mouseflag; function setFlag() { mouseflag = true; } function removeMenu() { if (!mouseflag) { document.getElementById('menu').innerHTML = ''; } } function doProcessing(id, name) { mouseflag = false; ... }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.