datepickerに似たウィジェットを作成していますが、(a) ユーザーが入力ボックスからタブを外したとき、または (b) ウィジェットと入力の両方の外側をクリックしたときに、ウィジェットを非表示にする方法がわかりません。
ぼかしイベントを入力ボックスにバインドするのは簡単ですが、問題は、ウィジェットをクリックしたときにトリガーされることであり、フォーカスがどの要素に変更されたかを内部から判断する信頼できる方法がないようです。ぼかしイベント。
ユーザーが入力の外側をクリックしたときにウィジェットを閉じるのも少し大雑把ですが、実行可能です:
$('body').on('click', function(e) {
if(e.target != self.element[0] && e.target != self.clock[0] && !$.contains(self.clock[0], e.target)) {
self.clock.hide();
}
});
しかし、ぼかしイベントを適切に処理する方法を理解できれば、それは必要ありません (要素の外側でタブを押すことによってもトリガーされる可能性があります)。