Как добавить ещё одно действие для конкретного вызова одной и той же функции?

введите сюда описание изображения

Эта функция будет вызываться несколько раз. И лишь в одном случае мне нужно выполнить дополнительное действие. Это условие не срабатывает.

Как мне из множества вызовов этой функции добавить ещё одно действие для конкретного случая?

function calcPriceHeight(elementChange) {
    let heightArray = [];

    // check each elem height including padding
    elementChange.each( function () {
        let elemHeight = $(this).innerHeight()
        heightArray.push(elemHeight);
    });

    //put all heights into array
    let array = $.map(heightArray, function(value){
        return [value];
    });

    // apply to all same elements same height
    elementChange.css({'minHeight' : Math.max.apply(Math, array)})


    if (elementChange === $(".s-package-slider-price-top .s-package-slider-price-block")) {
        $('.s-package-slider-row-titles').css({'paddingTop' : Math.max.apply(Math, array)})
    }
}

calcPriceHeight($(".s-package-slider-price-top .s-package-slider-price-block"))

Ответы (2 шт):

Автор решения: Сервер Усеинов

Вы пытаетесь сравнить два массива, не два объекта, а они никогда не будут равны. Нужно изменить на что-то подобное.

if (elementChange[0] === $(".s-package-slider-price-top .s-package-slider-price-block")[0])

P/S jQuery селектор возвращает не DOM элемент, а массив элементов. Если элементов больше одного, то нужно будет уже сравнивать каждый из элементов.

→ Ссылка
Автор решения: OPTIMUS PRIME

Вызов $(".class-1 .class-2") возвращает специальный jQuery-объект элементов, через === он никогда не будет равен никакому другому значению.

Проверять jQuery-элемент на соответствие с селектором, можно так:

if ( elementChange.is(".class-1 .class-2") ) { ...

Вернет true, если у elementChange есть class-2, а он сам находится где-то внутри class-1

$(document).on("click", function(e) {
  console.log( $(e.target).is(".a .b") );
});
.a { background: #169; padding: 20px; }
.b { background: #f70; padding: 30px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="a">
  <div class="b">

  </div>
</div>


А в стандартном JS есть .matches()

document.addEventListener("click", function(e) {
  console.log( e.target.matches(".a .b") );
});
.a { background: #169; padding: 20px; }
.b { background: #f70; padding: 30px; }
<div class="a">
  <div class="b">

  </div>
</div>

→ Ссылка