2016-10-05 3 views
1

Привет У меня есть проблема с этим небольшим кодом:Удалить Attr и добавить его, если класс существует - JQuery

$(".delayDiv").each(function(){ 
    var img_attr = $(this).attr('style'); 
    $(this).attr('style', ''); 
    if ($(".delayDiv").hasClass("visible")) { 
     $(this).attr('style', img_attr); 
    } 
}); 

То, что я пытаюсь сделать, это:

  • Ищет див с class="delayDiv"
  • затем сохранить атрибут стиля в переменной
  • затем искать класс = «видимый» в том же DIV (я добавляю этот класс, используя viewportChecker.js, тх t означает, что класс добавляется только в том случае, если Div находится внутри окна просмотра).
  • Если класс существует, добавьте содержимое стиля снова!

ДИВ OutSite видового экрана: <div class="backImg"></div>

DIV внутри видового экрана: <div class="backImg visible"></div>

Спасибо за любую помощь.

+2

Что именно проблема вы столкнулись? – Terry

ответ

1

Удалить стиль, только если элемент не имеет 'visible' класс.

$(document).ready(function(){ 
    $(".delayDiv").each(function(){ 
     if (!$(".delayDiv").hasClass("visible")) { 
      $(this).removeAttr('style', ''); 
     } 
    }); 
}) 
1

Все, что вам нужно, это :not() селектора и removeAttr(), чтобы удалить стиль из все основного класса, который также не имеет видимый класса

$(".delayDiv:not(.visible)").removeAttr('style') 
Смежные вопросы