我在一个input元素上设置了一个焦点事件。当有焦点时,jQuery会搜索div并显示它。这是可行的。在同一个输入元素上使用blur事件,我使div隐藏,这也是有效的。但是当我点击一个链接或者想要在显示的div中选择文本时,它会因为blur事件而立即消失。如何为显示的div创建异常?
$("input.search-main-text").focus(function() {
$("div.quickResults").show();
});
$("input.search-main-text").blur(function() {
$("div.quickResults").hide();
});
发布于 2009-11-19 16:52:52
$("input.search-main-text").bind('focus', function() {
$("div.quickResults").show();
$(document).bind('mousedown', function(e) {
if (! $(e.target).closest('div.quickResults').length) {
$("div.quickResults").hide();
$(document).unbind('mousedown', arguments.callee);
}
})
});
发布于 2009-11-19 16:11:32
您可以尝试执行以下操作:
发布于 2009-11-19 16:26:52
如果没有更多的信息,我不能告诉您更多,只是如果我是您,我会尝试在文本输入元素上使用change事件,而不是使用焦点和模糊。如果您更多地描述您正在尝试实现的内容,我可能会更具体一些。
https://stackoverflow.com/questions/1761649
复制相似问题