2013-07-31 5 views
0

Я хочу установить цвет фона всех элементов в диалоге, который имеет класс matchedOn.JQuery Модальные и css-стили

У меня есть следующий код:

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

matchedItem является локальной переменной, которая используется, чтобы проверить содержимое элемента. Например, если какой-либо элемент с классом matchedOn содержит «Fred», где «Fred» равен matchedItem, тогда установите необходимый css.

Это прекрасно работает для первой вкладки в моем модальном виде. Однако, хотя у меня есть класс, определенный на второй вкладке, с 'Fred', css не применяется.

У меня есть код jquery, после того как весь html обращается к модальному, так что это не проблема проверки на что-то, чего там нет.

* EDIT ** привет, это senstive данные, поэтому я не могу отобразить все. Тем не менее, каждая вкладка имеет следующие

<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> 

Таким образом, в моей ситуации, вкладка шесть имеет стиль, примененный, но не в tab7

+1

Можем ли мы увидеть, пожалуйста, структуру HTML? – Spokey

ответ

1

Проблема заключается в том, что ваш блок кода выполняется только один раз, когда другие вкладки скрытый. Ваш код также должен выполняться, когда другие вкладки становятся активными, чтобы изменить CSS на видимые элементы. Вы можете перехватить activate событие и выполнить код в нем:

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

Эмир, не уверен, что этот параметр доступен, так как mactedItem, недоступен на этом уровне. matchedItem, устанавливается в объекте msg.d WebMethod, где находится остальная часть HTML – CSharpNewBee

1

Проверить:

$('.matchedOn:contains("'+matchedItem+'")').css({ "color": "green", "background-color": "#FFFF00" }); 

Demo

Смежные вопросы