我有一个文本框,当您在其下方键入结果时,该文本框具有过滤器。我有 jQuery 可以检测焦点何时离开文本框,因此它可以隐藏结果 div。但是,如果单击结果,我不想隐藏结果,以便我可以使用该单击重定向到该项目的不同页面。
我.has(":focus")
用来检查我的结果 div或其任何孩子是否有焦点。我的问题是,据我所知,这只适用于 IE。有谁知道为什么?
$("#TextBox").blur(function () {
if ($("#ResultsDIV").has(":focus").length == 0) { //if you click on anything other than the results
$("#ResultsDIV").hide(); //hide the results
}
});
更新:感谢 Climbage 我有这个工作......
var resultsSelected = false;
$("#ResultsDIV").hover(
function () { resultsSelected = true; },
function () { resultsSelected = false; }
);
$("#TextBox").blur(function () {
if (!resultsSelected) { //if you click on anything other than the results
$("#ResultsDIV").hide(); //hide the results
}
});
工作示例:http: //jsfiddle.net/cB2CN/