1

以下のコードは、最初のドロップダウンに個別のパンツ ブランドを入力します。

$.each(pantsBrands, function(i){
    var li = $('<li>')
        .appendTo(pantsList);
    var aaa = $('<a>')
        .text(pantsBrands[i])
        .attr('onclick','askPantStyle()')
        .appendTo(li);
});

この次のコードでは、上記の選択を何らかの方法で使用して、最初に選択したブランドに関連するスタイルで構成される 2 番目のドロップダウン ボックスにコンテンツを入力します。

var askPantStyle = function(){
    $('#pantStyleDiv').slideDown();
    alert($(this).text());
}

アラートを使用して、(これ) が何を返すかを確認しました。最初に選択したテキスト コンテンツであることを期待していましたが、アラート ボックスが表示されたとき、コンテンツは空です。

以下の関連するhtml:

<div id='pantsLanding'>
            <p class="lead">Which brand of pants fits you best?</p>
            <p class="lead">
                <!-- Split button -->
                <div class="btn-group">
                    <button type="button" class="btn btn-default">Brand</button>
                    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
                        <span class="caret"></span>
                        <span class="sr-only">Toggle Dropdown</span>
                    </button>
                    <ul id="dropPants" class="dropdown-menu scrollable-menu" role="menu">
                    </ul>
                </div>
            </p>  
        </div>
        <div id='pantStyleDiv'>
            <p class="lead">What style do you prefer?</p>
            <p class="lead">
                <!-- Split button -->
                <div class="btn-group">
                    <button type="button" class="btn btn-default">Style</button>
                    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
                        <span class="caret"></span>
                        <span class="sr-only">Toggle Dropdown</span>
                    </button>
                    <ul id="dropPantStyle" class="dropdown-menu scrollable-menu" role="menu">
                    </ul>
                </div>
            </p>  
        </div>
4

1 に答える 1

1

これを解決する方法の簡単な例を以下に追加しました。ブートストラップ ドロップダウンは、その使用法が非常に具体的であるため、 selectsの通常のイベントではclickなく、イベントを使用しています。change

$('#dropPants').on('click', 'li a', function() { ... });

また、ソリューションの全体像がわからないため、データ属性を追加しませんでした。しかし、これを使用して、物事が思い通りに機能することを願っています。

データを提供しなかったので、ブランドの配列とスタイルのオブジェクトを作成しました。各ブランドには、スタイルの配列を含むオブジェクトのプロパティがあります。

var pantsBrands = ['levis', 'lee', 'lindeberg'];
var pantsStyles = { 
        'levis': ['501','502'],
        'lee': ['bruce','kim'],
        'lindeberg': ['lindeberg1','lindeberg2']
};

とにかく、以下は、別のドロップダウンにデータを入力する Bootstrap ドロップダウンの実例です。

var pantsBrands = ['levis','lee','lindeberg'];
var pantsStyles = { 'levis': ['501','502'],
                    'lee': ['bruce','kim'],
                    'lindeberg': ['lindeberg1','lindeberg2']
                  };

$.each(pantsBrands, function(i) {
  $('#dropPants').append('<li><a href="#">'+pantsBrands[i]+'</a></li>');
});

$('#dropPants').on('click', 'li a', function() {
  $('#dropPantStyle').html('');
  var showStyles = pantsStyles[$(this).text()];
  $.each(showStyles, function(i) {
    $('#dropPantStyle').append('<li><a href="#">'+showStyles[i]+'</a></li>');
  });   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
<div id='pantsLanding'>
  <p class="lead">Which brand of pants fits you best?</p>
  <p class="lead">
    <!-- Split button -->
    <div class="btn-group">
      <button type="button" class="btn btn-default">Brand</button>
      <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
        <span class="caret"></span>
        <span class="sr-only">Toggle Dropdown</span>
      </button>
      <ul id="dropPants" class="dropdown-menu scrollable-menu" role="menu">
      </ul>
    </div>
  </p>
</div>
<div id='pantStyleDiv'>
  <p class="lead">What style do you prefer?</p>
  <p class="lead">
    <!-- Split button -->
    <div class="btn-group">
      <button type="button" class="btn btn-default">Style</button>
      <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
        <span class="caret"></span>
        <span class="sr-only">Toggle Dropdown</span>
      </button>
      <ul id="dropPantStyle" class="dropdown-menu scrollable-menu" role="menu">
      </ul>
    </div>
  </p>
</div>

于 2015-05-26T07:56:42.967 に答える