1

マウスが#loginform_topのIDを持つフォームを離れたときに、jQueryを使用してフォームをfadeOutに設定しました。これは問題なく動作しますが、このフォームはログイン ボックスであるため、Firefox がこのフォームの入力フィールドのオートコンプリートの詳細をポップアップすると、マウスをオートコンプリートに移動するとフォームが非表示になります。フォームを非表示にせずにオートコンプリートを選択できるようにする方法はありますか。これを見てくれてありがとう。私は次のコードを使用しています:

  $('#loginform_top').hide(); 
  $('.loginToggle').mouseover(function() { 
    if(!$('#loginform_top:visible').length)
    {
      $('#loginform_top').fadeIn('fast'); 
    }
  });
  $('#loginform_top').mouseleave(function() { 
   $('#loginform_top').fadeOut('fast') 
  });

});

4

2 に答える 2

0

これはハックのようなものですが、フォームの非表示を遅らせて autocomplete を処理する機会をユーザーに与えるために、mouseleave ハンドラーで setTimeout を開始した場合はどうなるでしょうか。

または、ユーザーがログインしないことを選択した場合に、mouseleave を使用するのではなく、「X」または何かを提供して、ユーザーがフォームを閉じられるようにすることもできます。これは、ログインしないことが有効なオプションであることを前提としています。

于 2010-11-06T19:10:20.150 に答える
0

<br />内部に s を追加するか、高さスタイル属性を設定して、フォームを大きくしてみてください。これは、オートコンプリート オプションをクリックしたときにマウスがフォームを離れることが原因である可能性があります (これは、上記で説明したと思います)。

確認していませんが、これを onblur="" と組み合わせて、テキストボックスが選択されていないことを示すことができるかもしれません。次に、他の JavaScript コードは、そこで定義された変数を参照できます。

于 2010-11-06T18:42:44.137 に答える