その下に結果を入力すると、フィルターを持つテキストボックスがあります。結果のdivを非表示にできるように、フォーカスがテキストボックスを離れたことを検出するjQueryがあります。しかし、結果がクリックされた場合、そのクリックを使用してそのアイテムの別のページにリダイレクトできるように、結果を非表示にしたくありません。
.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
}
});