私は、その下に結果を入力するときにフィルタを持つテキストボックスを持っています。フォーカスがテキストボックスを離れると検出して結果divを隠すことができるjQueryがあります。しかし、その結果をクリックしてその結果を非表示にして、そのクリックを使用してそのアイテムの別のページにリダイレクトすることはできません。FF/Chrome/SafariのjQuery .has( ":focus")
.has(":focus")
を使用して、結果がまたはその子にフォーカスしているかどうかを確認しています。私の問題は、これは私が言うことができる限り、IEでのみ動作するということです。誰でも知っている理由は?
$("#TextBox").blur(function() {
if ($("#ResultsDIV").has(":focus").length == 0) { //if you click on anything other than the results
$("#ResultsDIV").hide(); //hide the results
}
});
UPDATE:私はこの作業を持っている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/
Genius!ホバーのアイデアはうまくいった... – Paul