私のアコーディオン コントロールでは、ヘッダー スタイルをオーバーライドして、特定のペインのユーザー コントロール (ユーザーの名前とアドレスの入力など) が false の検証ブール値を返す場合、デフォルトのテーマ カラーの代わりに赤い背景を表示したいと考えています。
.Toggle を使用してクラスを変更する方法には問題ありませんが、そもそもテーマローラー クラスを取得する方法がわかりません。
どうすればいいですか?
ありがとう
ポール
私のアコーディオン コントロールでは、ヘッダー スタイルをオーバーライドして、特定のペインのユーザー コントロール (ユーザーの名前とアドレスの入力など) が false の検証ブール値を返す場合、デフォルトのテーマ カラーの代わりに赤い背景を表示したいと考えています。
.Toggle を使用してクラスを変更する方法には問題ありませんが、そもそもテーマローラー クラスを取得する方法がわかりません。
どうすればいいですか?
ありがとう
ポール
jQueryアコーディオンを使用していると仮定します
クラスの名前: .ui-accordion-header
したがって、検証後に false が返されます
次のようにインライン スタイルを追加して、新しい背景色を設定します。
$('.ui-accordion-header').attr('style','background:red');
次に、それを削除します:
$('.ui-accordion-header').attr('style','');
アップデート
このhtml構造体があると仮定します
<div id="accordion">
<h3><a href="#">Section 1</a></h3>
<div>
<p>
... <- if your form is here for es.:
your path escalation to it's own H3 would be:
<!--\ $(this).parent('p').parent('div').prev(h3).attr('style','background:red') \-->
</p>
</div>
<h3><a href="#">Section 2</a></h3>
<div>
<p>
...
</p>
</div>
</div>
$(this) は、if ステートメントの空の入力を参照します。
if ( $('my_input').val() == '' )
$(this).parent().parent().prev().attr('style','background:red');
これは期待どおりに動作するはずです。
このようなリバースエンジニアリングの便利な方法は、FirefoxやChromeなどのブラウザにアクセスして(他のブラウザも同様ですが、私が最もよく使用する2つです)、要素を右クリックして[要素の検査]を選択することです。 「」これにより、マークアップと現在適用されているスタイルの適切にフォーマットされた(少なくともFirefoxはフォーマットしますが、Chromeはそうではないかもしれません)ビューが提供されます。さらに、そのインスペクターは、たとえば、CSSルールが適用されない理由を理解するのに役立ちます。また、その場で新しいルールを作成することもできます。これにより、edit-compile-testループがはるかに高速になります。