2

Rails 3.2アプリには、たくさんの写真が表示されるアルバムページに似たものがあります。各写真の下には、ユーザーが次のような形式のいくつかのオプションから選択できる選択ボックスがあります。

<select id="photo_1">
  <option value=value_1>Name of Value 1</option>
  ...
  <option value=value_n>Name of Value N</option>
</select>

問題は、値のリストが非常に長い(数百の可能性)が、各写真でまったく同じであるということです。各アルバムには数十枚の写真が含まれている可能性があるため、写真がページに読み込まれるたびにサーバーに完全なリストを送信させるのは非効率的です。たとえば、読み込みなど、これを行うためのより効率的な方法はありますか?

  <option value=value_1>Name of Value 1</option>
  ...
  <option value=value_n>Name of Value N</option>

アルバムページが生成されたときに(おそらく非表示フィールドとして)一度だけ表示され、写真がページに読み込まれたときに、jQuery / javascriptを使用してクライアント側の写真の一意のタグに入力しますか?(注:写真は動的に読み込まれるため、アルバムページの最初の読み込み後に、ユーザーが写真をアップロードするときに読み込まれる場合があります。)

4

2 に答える 2

1

オプションを他の要素にコピーするだけです

HTML

<select id="photo_1">
  <option value="value_">Pick</option>    
  <option value="value_1">Name of Value 1</option>
  <option value="value_2">Name of Value 2</option>
  <option value="value_3">Name of Value 3</option>
</select>
<select class="copy"></select>
<select class="copy"></select>

JavaScript

var mainSelectOptions = $("#photo_1 option").clone();
var selects = jQuery(".copy").append(mainSelectOptions);

例: JSFiddle

于 2012-10-30T17:37:26.300 に答える
1

<select>これを必要とする s に共通のクラスがあればもっと良いのですが、これは<select>ID が で始まるすべてのクラスで機能しphotoます (ただし、nameではなく を使用する必要がありますid)。

$(function () {
    $("select[id^=photo]").each(function () {
       $(this).html($("#hidden_select").html());
    });
});​

JSFIDDLE

于 2012-10-30T17:37:42.937 に答える