1

これが状況です:私はdivのある垂直メニューを持っています。各divにはIDがあります。divをクリックすると、次の方法を使用してdiv内に選択リストが追加されます。

$ ( '#mydiv' ).on ( 'click', function ( ) {
  var select = '<select name="menuList"><option value="test">test</option>...</select>';
  $ ( '#mydiv' ).html ( select );
} ) ;

私がやろうとしていることは単純です。オプションが選択されたときのユーザー選択をテキストとして定義したいと思います。私はこれを試しましたが、機能しません:

$ ( 'select[name="menuList"]').on ('blur', function ( ) {
  $ ( '#mydiv' ).html ( $ ( 'select[name="menuList"] option:selected' ).val ( ) );
} );

さらに、もう1つの問題は、リストからオプションを選択すると、選択したフィールドがユーザーの選択のままではなく、リストの最初の位置に戻ることです。基本的に、問題は実際の問題ではありません。リストを彼の選択を含むテキストフィールドにすぐに置き換えるためですが、なぜこれが発生するのかを理解したいと思います。

4

1 に答える 1

2

クリック イベントで HTML を (破壊的に) 設定しているため、div をクリックするたびに html が置き換えられます。document.ready に html を設定し、hide / show を使用するか、コンテンツが設定されているときに設定するフラグを作成し、クリックするたびにチェックして、メニューを再作成しないようにすることをお勧めします。

于 2012-05-09T09:38:52.593 に答える