問題タブ [focusout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - jquery には focusout() の代替が必要
サンプル マークアップを考えると、次のようになります。
div
jQueryを介して、フォーカスを失ったことをどのように判断できますか?
使用できますfocusout()
が、それは私が必要としているものではありません。focusout を使用すると、入力がフォーカスを失っていることを (イベント バブリングを介して) 実際に検出するため、入力から入力への 1 つのタブとしてトリガーされます。
要件を別の言い方をすると、いつフォーカスが div の外に移動したかを知る必要があります。
私は前に同様の質問をしました:
しかし、これはポップアップ UI に関連しており、その後ろに空白の DIV を挿入し、クリック/フォーカス イベントをトリガーとして配置することで回避できますが、この状況では機能しません。
次に考えたのは、focusout を呼び出すときに focusin をテストすることでした。
残念ながら、それは機能しません (focusout イベント中に focusin を評価しているため、まだ focusin を検出していないためだと思います。
この問題に対する賢い解決策はありますか? 私が探しているものを正確に実行するネイティブjQueryイベントが欠けているのでしょうか?
アップデート:
実際には、単純化された質問:
相当するものが必要です$('div').blur()
が、実際にはdivで機能します(divからぼかしをトリガーできないため)
jquery - jQuery フォーカスの設定
問題
ユーザーがマウスオーバーしたときにポップアップが表示されるエフェクトを実行しようとしています。次に、そのポップアップにフォーカスが設定されます。ユーザーがポップアップのフォーカスアウトを行うと、ポップアップは消えます。
例
以下に実際の例を示しますが、ユーザー名とパスワードの両方のフィールドで「testuser」としてログインする必要があります。ログインしたら、ログインボックスにカーソルを合わせると、すでにログインしていることを示すポップアップが表示されます。
ログアウトボタンが含まれているため、ユーザーがフォーカスを外すとポップアップがフェードアウトするようにします。
現在...
私がこれまでに持っているもの:
どうやら、これは有効ではないか、または私が適切に把握していないものがあります。私はjQueryに非常に慣れていないので、啓発は素晴らしいでしょう!
[編集] これを行うためのより良い方法があれば、ところで私はすべて耳にします!
javascript - 別の入力で focusout イベントを開始するクリックに関する DOM の問題
<input type=text>
withfocusout
イベントハンドラーがあります<button>
クリックイベントハンドラーがあります
Focusoutは、入力ボックスの形式が正しいかどうかをチェックします。これは、正規表現に対して入力値をテストすることによって行われます。失敗した場合は、メッセージ (div
しばらくするとフェードインとフェードアウト) が表示され、呼び出して入力を再度フォーカスします。
focusout
イベントハンドラーで再フォーカスできないためです。focusout
イベントもキャンセル不可。参考までに。
Clickは入力要素からデータを収集し、Ajax を使用して送信します。
問題
ユーザーTABsがフォームを通過すると、すべて問題ありません。特定の入力ボックスがフォーマット チェックに失敗すると、ユーザーが を押した直後に再度フォーカスされますTAB。
しかし、ユーザーがTAB個々の入力フィールドを使用せずにクリックすると、. をクリックするまですべてが正常に機能しますbutton
。focusout
起動し、再フォーカスのタイムアウトを設定します。タイムアウトが非常に短いため、後でフォーカスが行われ、click
イベントが発生して Ajax リクエストが発行されます。
質問
私はフォーマット チェックを独立した jQuery プラグインとして実装しましたが、それを維持したいと考えています。フォーマット正規表現が定義されている特定の属性を持つすべての入力フィールド.live()
にアタッチするために使用します。focusout
データの送信も一般的であり、書式設定プラグインに依存させたくありません。どちらも独立したままにする必要があります。
これら 2 つのプラグインを依存させずに、クリック イベントが実行されないようにするにはどうすればよいですか?
私がいじっているコード例
いくつかの検索の後、すべての主要なブラウザーがサポートdocument.activeElement
されていることがわかりましたが、Chrome で動作させることはできません。FF と IE は両方ともアクティブな要素であると報告しますが、Chrome は要素で起動されたにもかかわらずアクティブであるとthis
常に言います。BODY
click
button
このコードhttp://jsfiddle.net/Anp4b/1/を確認して、ボタンをクリックしてください。Chrome と他のブラウザでテストして、違いを確認してください。
jquery - JQuery でフォーカスを失ったときに ul を非表示にする
フォーカスを失ったときにサブメニュー項目(ul)を非表示にしようとしています..私の構造は次のようになります
JQuery では、 focusoutイベントを使用して失われたフォーカスを処理しました。
しかし、上記のコードは機能しません。ul で失われたフォーカス イベントを処理する方法を推奨できる人はいますか。
javascript - jqueryfocusoutイベントにrelatedTarget情報がありません
focusin
/focusout
イベントにバインドされたテキスト入力があります。
でfocusout
、私はrelatedTarget
情報に興味があります。つまり、テキスト入力がフォーカスを失うとDOM要素がフォーカスを受け取りますが、このプロパティはundefined
イベント用です。
一方、toElement
と同等のInternetExplorerであると私が信じているrelatedTarget
は利用可能です。つまり、私のfocusout
ハンドラーはIEでは正常に機能しますが、他のブラウザーでは機能しません。
上記の制限の回避策はありますか?
javascript - jQuery: Firefox focusout イベント
div に 2 つの入力ボックスがあります。入力の focusOut でその div を非表示にしたいのですが、両方にフォーカスがない場合に限ります。
これは Firefox の一般的な問題 (標準に準拠していると言う人もいます) ですが、ドキュメントの本文がその間でフォーカスを奪います。
HTML
jQuery
これはよくあるバグですが、過去にどのように解決したか忘れてしまいました。activeElement
. _
jsFiddle の例
jsFiddle が更新されました(FF4 同じ問題)
jquery - フォーム入力フォーカスイン/アウト
私はいくつかのログインフォームを持っています。メールを記憶するように設定すると、メール入力に事前に入力されます。電子メールの入力をクリックすると、コンテンツ (実際の電子メール) が消えますが、クリックアウトすると、電子メールが再び表示されます。しかし、どうにかしてメールをフェードアウトさせることができました。フォーカスアウトで古い値を復元する方法がわかりません。コード:
古い記憶された値 (電子メール) がそこに表示されるように、フォーカスアウトの値はどうあるべきかについて何か考えはありますか?
ありがとう!
jquery - jqueryによるイベントの順序
次のような状況があります。
キーワードを入力できるテキストボックス。keyup イベントは、データベースで類似のキーワードを検索する AJAX スクリプトをトリガーします。show()
見つかった場合、見つかったキーワードを含む DIV が表示されます ( )。
div 内のキーワードの 1 つをクリックすると、選択したキーワードがテキスト ボックスに書き込まれ、div が非表示になります ( hide()
)。
しかし、DIV が表示されていて、フォーム内の別の場所をクリックするか、テキスト ボックスからタブで移動すると (focusout イベント)、DIV を非表示にしたいと思います。
これは focusout イベントで行うことができます。しかし、DIV のキーワードのクリックを登録するためにクリック イベントを使用し、フォーカスアウト イベントを登録するために focusout イベントを使用すると、次の問題が発生します。非表示ですが、キーワードはテキストボックスにコピーされません。
現在、次のコードがあります。
説明:
javascript - フォーカスが HTML フォームを離れたとき (つまり、フォームの子にフォーカスがなくなったとき) を判断する方法は?
たとえば、テキストエリアを持つ HTML フォーム要素と、子要素として 2 つのボタンがあります。フォーカスがこれらの 3 つの要素の 1 つから、それらの 3 つの要素以外の要素に移動したことをどのように検出できますか。言い換えれば、フォーカスがフォームから離れたことをどのように検出して、自動的に閉じることができるのでしょうか?
フォームの focusout イベントを使用して、フォーカスがその子要素のいずれかに属しなくなった時期を把握できると考えましたが、フォーカスを取得するオブジェクトに focusout イベントからアクセスできないように見えるため、方法がありませんたとえば、フォーカスがテキストエリアからボタンの 1 つに移動しているかどうかを確認します。
relatedObject、fromElement、および toElement プロパティはすべて未定義です。
apache-flex - focusOutが実際にフォーカスを変更するのを防ぐアラート
機能的な例を次に示します。
txtOneからtxtTwoに変更すると、アラートが表示され、[OK]を押すと、フォーカスがtxtOneに戻ります。私はそれが起こらないようにしたい。これを解決する方法は?