Проблема с функцией jQuery each () и размером изображения

0

Здесь моя проблема, у меня есть портфолио, где изображения отображаются динамически:

<?php echo'<div class="real"><img src='".$pathReal."'></div>' ?>

Они должны изменяться в зависимости от размера изображения.

Итак, в jQuery я назначаю класс в рапорте размером изображения:

$(".real img").each(function(){
  var widthImage = $(this).width();
  var heightImage = $(this).height();

  if(widthImage > heightImage ){
     $(".real img").addClass('realHeight');
  }else{
     $(".real img").addClass('realWidth');
  }
});

Но он не работает:

<img class="realHeight realWidth" src="img/1.jpg">

2 класс, когда я хочу, чтобы он был тем или иным.

(CSS):

.realWidth{width: 100%;}

.realHeight{height: 100%;}

Может кто-то мне помочь, пожалуйста?

(Извините за мой плохой английский)

  • 1
    Вместо этого используйте: $(this).addClass('realHeight'); и то же самое ниже
Теги:
each
function
image
addclass

3 ответа

0
Лучший ответ

Используйте $(this) в вашем цикле, чтобы манипулировать правым элементом DOM (ваш тег изображения)

И используйте naturalWidth и naturalHeight чтобы получить правильный размер изображения.

$(".real img").each(function(){
  var widthImage = $(this).naturalWidth;
  var heightImage = $(this).naturalHeight;

  if(widthImage > heightImage ){
     $(this).addClass('realHeight');
  }else{
     $(this).addClass('realWidth');
  }
});
  • 0
    Спасибо за помощь !
0

Ваше эхо кажется неправильным:

<?php echo'<div class="real"><img src='".$pathReal."'></div>' ?>

который должен выглядеть следующим образом:

<?php echo'<div class="real"><img src="'.$pathReal.'"></div>' ?>

Ans, поскольку вы зацикливаете, чтобы использовать $(this)

if(widthImage > heightImage ){
   $(this).addClass('realHeight');
}else{
   $(this).addClass('realWidth');
}
  • 0
    Спасибо за помощь !
0

Используйте это вместо применения селекторов классов внутри каждого

$(".real img").each(function(){
  var widthImage = $(this).width();
  var heightImage = $(this).height();

  if(widthImage > heightImage ){
     $(this).addClass('realHeight');
  }else{
     $(this).addClass('realWidth');
  }
});

$ (". real img"). addClass ('realHeight');

Это применит класс realHeight ко всем изображениям с классом real. Мы не хотим, чтобы

  • 0
    Спасибо за помощь !

Ещё вопросы

Сообщество Overcoder
Наверх
Меню