У меня проблемы с отключением функции в Jquery - PullRequest
0 голосов
/ 13 октября 2019

У меня проблема при попытке отключить функцию. На самом деле я создаю текстовую анимацию:

    function textAnimation()
{
     $('.imagers>p:nth-child(n)').hide();
        $('.sub').hide();
        $('.imagers>p:nth-child(1)').show();
        var scale=1.3;
        $('.imagers>p:nth-child(1)').css('transform', 'scale('+scale+')').wait(2000).hide(200);
}

. Чтобы улучшить работу сайта на мобильных устройствах, я хочу отключить эту функцию, чтобы включить другую, которая лучше подходит для мобильного телефона. Итак, я попробовал эту функцию:

$(window).resize(function() {

         var x = $(window).width();
            $('#sizeInformation').text(x);
           if(x<642)
               {
                  $(document).off(textAnimation());
               }

    });

Однако функция не отключается, и это ведет себя странно, у вас есть предложение, пожалуйста? Сначала я подумал, что условие:

if(x<642)
               {
                  $(document).off(textAnimation());
               }

не работает. Поэтому я также попробовал это:

$('body').click(function(){
        $(document).off(textAnimation());
    })

Но результат тот же, функция ведет себя странно и не отключается. Не могли бы вы мне помочь? Извините за мой английский, я французский

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Вместо того, чтобы пытаться отключить функцию, создайте функцию, которая решит, какую функцию вызывать:

function responsiveTextAnimation() {
  if ($(window).width() < 642) return textAnimationMobile();
  return textAnimation();
}

Теперь замените каждый вызов textAnimation() на responsiveTextAnimation(), и он решит, вызовет ли онмобильная или настольная.

0 голосов
/ 13 октября 2019

Вы можете проверить размер окна, а затем вызвать вашу функцию:

var x = $(window).width();
if (x > 642) {
    textAnimation();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...