Я пытаюсь добавлять и удалять классы в зависимости от правила CSS для экранов размером 500px и меньше. В CSS я использую
@media (max-width: 500px) {
.evidence img {display:none;}
}
и эта функция jQuery ищет этот CSS, добавляет и удаляет классы:
jQuery(document).ready(function() {
checkSize();
jQuery(window).resize(checkSize);
function checkSize(){
if (jQuery(".page-template .evidence img").css("display") == "none"){
jQuery( ".page-template .evidence .two-col").addClass("left").removeClass("two-col");
jQuery( ".page-template .evidence .right").addClass("left").removeClass("right");
} }
});
Проблема в том, что когда я изменяю размер окна более чем на 500 пикселей, правило jQuery не «обновляется» и снова не читает классы и правила CSS.
Я пытался "повернуть" их, т. Е. С
.evidence img {display:block;}
и
if (jQuery(".page-template .evidence-cards img").css("display") == "block"){
jQuery( ".page-template .evidence .two-col").addClass("two-col").removeClass("left");
jQuery( ".page-template .evidence .right").addClass("right").removeClass("left");
} }
Есть идеи? Как я могу заставить jQuery(window).resize(checkSize);
снова стрелять?
Редактировать 6/05/19
re: ответ Даниэля Бека, ключевой момент состоял в том, что классы меняются и больше не существуют, чтобы идентифицировать div при изменении размера> 500px. Я не могу изменить классы на идентификаторы, но я добавил дополнительные классы (которые не вызываются в таблице стилей), которые остаются статичными, то есть .change-two-col
, .change-right
. Это работает:
jQuery(document).ready(function() {
function checkSize() {
if (jQuery(".page-template .evidence img").css("display") == "none") {
jQuery(".page-template .evidence .change-two-col").addClass("left").removeClass("two-col");
jQuery(".page-template .evidence .change-right").addClass("left").removeClass("right");
} else {
jQuery(".page-template .evidence .change-two-col").addClass("two-col").removeClass("left");
jQuery(".page-template .evidence .change-right").addClass("right").removeClass("left");
}
}
checkSize();
jQuery(window).resize(checkSize);
});