0

のクラスを持つダイアログ内のすべての要素の背景色を設定したいと考えていますmatchedOn

次のコードがあります。

$('.matchedOn').each(function () {
  if ($(this).html() == matchedItem) {
    $(this).css({ "color": "green", "background-color": "#FFFF00" });
  }
});

matchedItem要素の内容をチェックするために使用されるローカル変数です。したがって、たとえば、クラスが のいずれかの要素matchedOnに「Fred」が含まれている場合、「Fred」はmatchedItemであり、必要な CSS を設定します。

これは、モーダル内の最初のタブで正常に機能します。ただし、2 番目のタブでクラスを定義しても、'Fred' では css が適用されません。

すべてのhtmlがモーダルに描画された後、私はjqueryコードを持っているので、そこにないものに対してチェックすることは問題ではありません。

*編集** こんにちは、機密データなので、すべてを表示することはできません。ただし、各タブには次のものがあります。

<div id="tab6">
            <div id="results1">
                <div class="message">
                   <h2>title</h2>
                   <pre>
                   <dl>
                   <dt>Heading</dt>
                   <dd class="matchedOn">Fred</dd>
                   </dl>
                   </pre>
                 </div>
             </div>  
      </div>
      <div id="tab7">
            <div id="results2">
                <div class="message">
                   <h2>title</h2>
                   <pre>
                   <dl>
                   <dt>Heading</dt>
                   <dd class="matchedOn">Fred</dd>
                   </dl>
                   </pre>
                 </div>
             </div>  
      </div>

したがって、私の状況では、タブ6にはスタイルが適用されていますが、タブ7には適用されていません

4

2 に答える 2

1

問題は、他のタブが非表示になっているときにコード ブロックが 1 回だけ実行されることです。表示されている項目の CSS を変更するために、他のタブがアクティブになったときにもコードを実行する必要があります。イベントをインターセプトしてactivate、コードを実行できます。

$('.yourtabdiv').tabs({
    activate: function() {
        $('.matchedOn').each(function() {
            if($(this).html() == matchedItem) {
                $(this).css({ "color": "green", "background-color": "#FFFF00" });
            }
        });
    });
于 2013-07-31T11:36:35.010 に答える