0

テキストを含む入力フィールドがあり、その表示を切り替えようとしています。私が遭遇している問題は、フィールド上のスライドアニメーションを切り替えた後、そのテキストが表示されないことです。ただし、フィールドにフォーカスが移されると、テキストが再び表示されます。

これをSafari/IE / FFでテストしたところ、入力テキストは表示されたままですが、Chromeがそれほど奇妙に動作している理由がわかりません。

http://jsfiddle.net/f63Et/1/

4

4 に答える 4

4

問題は、jQuery がinline-block実行時に入力の表示を設定し.slideDown()、それにより Chrome が正しくレンダリングされないことです。

たとえば、入力を div でラップする、ディスプレイをブロックに設定するなど、いくつかのオプションがあります

于 2012-08-07T13:29:35.103 に答える
0

これは、なぜ Chrome が奇妙な動作をするのかという質問には答えませんが、回避策として、入力を div で囲む場合:

<div id="text"><input type="text" /></div>

次にslideTogglediv:

$(document).on('click', '#slide', function() {
    $('#text').slideToggle();
});

それはChromeで動作するようです。

于 2012-08-07T13:28:01.653 に答える
0

slideDown() のコールバックを入れることで、手動でフォーカスを合わせることができます:

$(this).focus()
于 2012-08-07T13:20:34.557 に答える
0

使用できるバリアントとして$('input').toggle('slow')

于 2012-08-07T13:31:46.570 に答える