Задать вопрос
AlibekKulseitov
@AlibekKulseitov
Люблю верстать и писать музыку

Правильное объявление функции в js?

Привожу код в частоту и делаю так чтобы все было чисто и правильно.
Посмотрите на код ниже. Скажите правильно ли все вызывается?
А конкретно интересует метод вызова функции equalNews();

(function ($) {
    "use strict";

    // document ready function
    $(document).ready(function($){

        /*
        |--------------------------------------------------------------------------
        | Equal Height
        |--------------------------------------------------------------------------
        */

        window.equalNews = 0;

        function equalNews() {
            clearInterval(window.equalNews);
            if($(window).width() >= 992) {
                $('.equal-news__list').css('height', $('.equal-news__col').innerHeight());
                window.equalNews = setInterval(function(){
                    if($('.equal-news__list').innerHeight() != $('.equal-news__col').innerHeight()) {
                        $('.equal-news__list').css('height', $('.equal-news__col').innerHeight());
                    }
                }, 200);
            } else {
                $('.equal-news__list').css('height', 'auto');
            }
        }

        equalNews();
		
        /*
        |--------------------------------------------------------------------------
        | Social Side
        |--------------------------------------------------------------------------
        */

	// тут разные ивенты на клик мышки

        /*
        |--------------------------------------------------------------------------
        | Owl Carousel
        |--------------------------------------------------------------------------
        */

	// тут скрипт карусели

    });

    // window onload
    $(window).on('load',function(){

        // Call responsify function when window object is loaded
        $('jsResponsify').responsify();

        // Call equalNews function when window object is loaded
        equalNews();

    });

    // window onresize
    $(window).resize(function(){

        // Call responsify function when window object is loaded
        $('jsResponsify').responsify();

        // Call equalNews function when window object is loaded
        equalNews();

    });

}(jQuery));
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@z_u_l
Здравствуйте, если правильно понял вас, то можно воспользоваться медиазапросами javascript и не прибегать $(window).resize, который довольно часто вызывает функцию. Почитать про них можно тут

Если правильно вас понял и не налажал, то так:
$(function(){
    var mediaQuerySM = window.matchMedia('(max-width: 992px)');

    window.equalNews = 0;

    function equalNews(mediaQueryXS) {
        if (mediaQueryXS.matches) {

            $('.equal-news__list').css('height', $('.equal-news__col').innerHeight());
            window.equalNews = setInterval(function(){
                if($('.equal-news__list').innerHeight() != $('.equal-news__col').innerHeight()) {
                    $('.equal-news__list').css('height', $('.equal-news__col').innerHeight());
                }
            });

        } else {
            $('.equal-news__list').css('height', 'auto');
        }
    }

    equalNews(mediaQueryXS);
    mediaQueryXS.addListener(equalNews); 
});
Ответ написан
Я правильно понял что вы 5 раз в секундe обновляете css некоторых элементов в случае если ширина окна больше определенного значения?
Мне кажется тут не идет уже речь о том правильно или неправильно вызывается эта функци. Вопрос стоит о том - а на кой хрен она зывается?

В целом да - у вас есть апдейт на таймере и вы и его зачем-то перезапускаете и он будет перезапускаться, но если бы мне верстальщик дал такой код, я бы его выкинул даже не пытаясь разобраться что он делает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 дек. 2024, в 16:09
70000 руб./за проект
24 дек. 2024, в 15:54
300 руб./за проект
24 дек. 2024, в 15:42
2000 руб./за проект