3

フォーカスを失ったときに自動的に閉じるように設計された小さなポップアップ ページがたくさんあります。つまり、ユーザーが親ドキュメントをクリックします。

残念ながら IE8 では、ユーザーがポップアップ ページ内の入力フォームに入力を開始したときにもぼかしが発生します。実際、フォーム内の任意の場所をクリックすると、またはユーザーが誤ってテキストをクリックした場合でも、これが発生します。これらのアイテムはポップアップ ドキュメントの一部ではないようです。

どうすればそうすることができますか?

いくつかのポップアップで使用するぼかしコード (.js スクリプト内) を次に示します。

var fClose=0 

onload=function() {   
 fClose=0  
 setTimeout("doClose()",111);  
 document.onblur=Blur_Me;  
 document.onfocusout = Blur_Me;  
}  

function Blur_Me(){  
 fClose=1;  
 setTimeout("doClose()",111);  
}    
function doClose(){  
 if(fClose)close();  
}
4

1 に答える 1

2

を使用する代わりに、 jQueryとハンドラーblur()を使用できます。focusin()focusout()

イベントは、そのfocusin要素またはその中の要素がフォーカスを取得したときに要素に送信されます。

イベントは、そのfocusout要素またはその中の要素がフォーカスを失ったときに要素に送信されます。

これらは、親要素からのフォーカスの喪失の検出をサポートするという点でblur()とは異なります(つまり、イベントのバブリングをサポートします)。

于 2012-12-25T19:07:18.850 に答える