1

.productSelectInputいくつかの製品についてのみ動的に表示されるクラスのdivがあるので、.options最初はCSSのクラスのdivを非表示にしますが、表示されたらもう一度表示し.productSelectInputたいと思います。.options以下のJSは機能すると思いましたが、機能しないようです。.productSelectInputオプションクラスの中にあるからかもしれないと思いました。どんな助けでも大歓迎です。

これが私のHTMLです:

<div class="options">
   <div class="option">
      <label for="o1">Choose:</label>
      <select id="Grouping_6350746" class="productSelectInput"
      name="AddToCart_Grouping" onchange="DrawProduct(311820,6350746,this.value,'',4);">
         <option value="6350744">Kiwi</option>
         <option value="6350745">Marigold</option>
         <option value="6350746" selected="selected">Strawberry</option>
      </select>
   </div>
</div>

これが私のCSSです:.options {display:none; }

これが私のjsです:

jQuery(document).ready(function() { 
    if ($( ".productSelectInput" ).is(":visible") ) {
        $( ".options" ).show();
    }
 });

解決済み:jsでオプションを非表示にすることができました。

jQuery(document).ready(function() { 
    if ($( ".productSelectInput" ).is(":visible") ) {
    $( ".options" ).show();
    } else {
    $( ".options" ).hide();
    }
 });    
4

4 に答える 4

0

.optionsCSSではなくJavaScriptで非表示にしてみてください。show() JavaScriptは、それ自体ではない要素を作成できない場合がありhide()ます。

于 2012-08-30T20:26:53.747 に答える
0

コードは一度だけ実行されます:ドキュメントの準備ができたとき。ページで何かが変更されるたびに呼び出されるわけではありません。

また、.productSelectInput最初は非表示になっているため、通常は表示され.optionsません。

自分を見えるようにしたい場合は.options、見えるようになるたびにテストを行う必要があり.productSelectInputます。最も簡単なのは、.productSelectInput見える場所に配置することです。

そして、あなたの質問を防ぐために:要素が見えるようになったときに発生するイベントはありません。定期的に確認することもできますが、お勧めしません。

于 2012-08-30T20:21:40.253 に答える
0

最も近い親を取得し、その1つだけを表示する必要があると考えてください。

jQuery(document).ready(function(){  
  if ($( ".productSelectInput" ).is(":visible") ) {
    $(this).closest( ".options" ).show();
  }
}); 
于 2012-08-30T20:22:30.363 に答える
0

ドロップダウンはdivの外側にある必要があります
。そうでない場合、親要素が非表示になっているため、変更が表示されません。

于 2012-08-30T20:30:19.660 に答える