2

2 つの「ページ」があります (基本的に 2 つの div タグ。一度に 1 つだけが表示されます)。ユーザーがどの「ページ」にいるかに応じて、選択ボックスはページ 1 の jQuery UI ダイアログに (スライダーとして)、またはページ 2 に通常の選択ボックスとして表示されます。私の質問は、insertAfter() を使用して、選択ボックスをあるページ/div から別のページ/div に移動できますか? または、より具体的には、私がすべきではない理由はありますか? clone() 関数は重複する ID を作成するため、避けてきました。基本的に、各選択ボックスのコピーを作成してそれらの値を同期しようとするのは、insertAfter() を使用しない正当な理由がない限り、やり過ぎのように思えます。

私の説明が明確でない場合に備えて、コードのモックアップを次に示します。

HTML:

    <div id="page1">
         <select id="tango">
            <option>Jester</option>
         </select>
    </div>

<div id="page2">
   <div id="dialog">
       <!-- Select Menu would be inserted/moved here -->
   </div>
</div>

JavaScript:

$('select#tango').insertAfter('#dialog');
4

3 に答える 3

2

スクリプトを使用すると、$('select#tango').insertAfter('#dialog');実際には次のようになります。

<div id="page2">
   <div id="dialog">

   </div>
   <!-- Select Menu would be inserted/moved here -->
</div>

あなたが本当に望む場所に配置したいのは次のとおりだと思います:

$('select#tango').appendTo('#dialog');
于 2012-04-23T21:30:42.427 に答える
1

私の質問は、insertAfter() を使用して、選択ボックスをあるページ/div から別のページ/div に移動できますか? または、より具体的には、私がすべきではない理由はありますか?

いいえ、これを行うことができない、または行うべきではない理由はありません。

于 2012-04-23T21:27:35.640 に答える
1

何も問題はありません。ここに動作するデモがありますhttp://jsfiddle.net/pomeh/FA23E/

HTML コード

<div id="page1">
     <select>
        <option>A</option>
        <option>B</option>
        <option>C</option>
     </select>
</div>

<div id="page2">
   <div id="dialog">
       <!-- Select Menu would be inserted/moved here -->
   </div>
</div>

<input type="button" value="Dance for me !" />

Javascript コード

var clicks = 0,
    $select = $("select"),
    $targets = [ $("#dialog"), $("#page1") ];

$("input").on("click", function() {
    var $target = $targets[ clicks++ % 2 ];

    $select.appendTo( $target  );
});
于 2012-04-23T21:39:14.397 に答える