2

3つの検索カテゴリがあります(最初の画像を参照)。ユーザーが1つを選択すると、そのトピックに対応する検索入力がカテゴリのスペースに表示されます(2番目の画像を参照)。ユーザーが簡単に入力を開始できるように、jQueryを使用して入力に自動的に焦点を合わせます。ユーザーが気が変わって入力がぼやけた場合、私はそれを非表示にして、3つのカテゴリを再度表示します。

これはすべて、ユーザーがEnterをクリックして検索する場合にうまく機能しますが、検索入力フィールドの横にある[移動]ボタンをクリックできるようにする必要もあります。問題は、実行ボタンをクリックしようとすると、入力がぼやけてから非表示になり、送信クリックが発生しないことです(この要素をクリックすると、発生しないため、ぼかしイベントのバインドを解除できません-ぼかしが最初にトリガーされます)

状態1:

状態2:

それで、この「go」要素がjQueryまたはJavaScriptを使用してクリックされない限り、blurイベントにバインドされた関数(divを非表示にする)を実行する方法はありますか?

4

2 に答える 2

2

いくつかのオプションがあります:

  1. フォーカスがコンテナの外にある場合にのみ、ぼかしの入力を非表示にできます。そのため、フォーカスが「Go」ボタンに移動した場合、入力はまったく非表示になりません。

  2. コードを設計し、フォーム送信ではなく ajax 呼び出しとして検索質問を起動できます。

  3. ブリーフの後、ぼかしの入力を非表示にすることができます。setTimeout()これにより、非表示になる前にフォームの送信に送信する機会が与えられます。

于 2012-09-05T20:59:22.797 に答える
1

入力にぼかしイベントを配置する代わりに、入力と Go ボタンの両方を保持するコンテナにぼかしイベントを配置します。

于 2012-09-05T21:01:57.893 に答える