# Como corrigir o JetPopup que não abre no mobile no WordPress

O JetPopup que não abre no mobile geralmente acontece quando o gatilho do popup depende de um evento que não existe no toque, quando a opção de visibilidade esconde o popup em telas pequenas, ou quando um plugin de cache adia o JavaScript do JetPopup no celular.

## O que é JetPopup que não abre no mobile?

O JetPopup que não abre no mobile é a situação em que um popup criado com o plugin JetPopup, da Crocoblock, funciona normalmente no desktop mas não dispara quando o visitante acessa o site pelo smartphone. O popup existe e está publicado, porém o gatilho configurado nunca é acionado no toque, ou o popup é renderizado e fica oculto por uma regra de visibilidade de dispositivo.

O JetPopup depende de três peças para abrir: um gatilho (Trigger) que define o evento que dispara o popup, as condições de exibição que controlam onde e para quem ele aparece, e o JavaScript do plugin carregado na página. No mobile, qualquer uma dessas peças pode falhar: um gatilho de saída de cursor não existe em telas de toque, a visibilidade pode estar marcada apenas para desktop, e otimizadores como WP Rocket podem adiar o script que comanda a abertura. Identificar qual das três peças quebrou no celular é o caminho da correção.

## Como identificar

- O popup abre normalmente no desktop, mas nunca aparece ao acessar a mesma página pelo celular.
- O gatilho configurado como 'On Page Load' funciona no desktop e fica inerte no mobile, sem nenhum erro visível.
- O popup que depende do gatilho de saída (Exit Intent / On User Inactivity) nunca dispara no smartphone, porque não há cursor saindo da tela.
- No console do navegador do celular aparecem erros de JavaScript ou avisos de script bloqueado logo ao carregar a página.
- O popup pisca por um instante e some, ou simplesmente não é encontrado no HTML quando a página é aberta em modo mobile.

**Antes de começar:** Antes de mexer nas exclusões de cache ou desativar plugins em produção, faça um backup do site ou teste primeiro em um ambiente de staging, para reverter caso outra funcionalidade dependa do mesmo script.

## Como prevenir

- Sempre teste cada popup em um smartphone real, e não apenas no preview responsivo do editor, antes de publicar.
- Para popups que precisam aparecer no mobile, escolha gatilhos compatíveis com toque, como On Page Load e On Scroll, evitando eventos de saída de cursor.
- Ao ativar adiamento de JavaScript em plugins de cache, sempre inclua o script do JetPopup nas exclusões e revalide os popups no celular.
- Documente as condições de exibição e a visibilidade por dispositivo de cada popup, para que um ajuste de responsividade não esconda o popup sem querer.

Erros relacionados

- [Como corrigir pop-ups que não aparecem no Elementor](https://full.services/wp-fixer/corrigir-popup-nao-aparece-elementor/)
- [Como corrigir layout quebrado no mobile após atualizar o Elementor](https://full.services/wp-fixer/corrigir-layout-mobile-elementor/)
- [Como corrigir Elementor com tela cinza ou carregando infinito](https://full.services/wp-fixer/corrigir-elementor-tela-cinza/)

## Causa

- O gatilho do popup é 'On User Inactivity' ou um evento de saída de cursor, que não existe em telas de toque: sem mouse saindo da viewport, o JetPopup nunca dispara no mobile.
- A opção de visibilidade do popup ou da seção que o contém está marcada para esconder em dispositivos móveis, fazendo o JetPopup ser carregado mas mantido oculto no celular.
- Um plugin de otimização como WP Rocket ou Perfmatters está com 'Delay JavaScript Execution' ou adiamento de scripts ativo, e o JavaScript do JetPopup só executa após uma interação que o popup de carregamento esperava disparar antes.
- O popup está vinculado a um gatilho de rolagem (On Scroll) com porcentagem que a página mobile, mais curta, não atinge, ou a um elemento de clique que não existe no layout responsivo.
- Um conflito de JavaScript com outro plugin ou com o tema interrompe o carregamento da biblioteca do JetPopup especificamente no breakpoint mobile, impedindo a inicialização do popup.

## Como resolver

1. Revise o gatilho do popup para um evento compatível com toque: Abra o popup no JetPopup e verifique o gatilho configurado. Gatilhos de saída de cursor e de inatividade não existem em telas de toque. Para o mobile, prefira 'On Page Load' com um pequeno atraso ou 'On Scroll', que funcionam no celular.

```
Painel WP -> JetPopup -> abra o popup desejado
Em Trigger, troque 'On User Inactivity' por 'On Page Load' ou 'On Scroll'
Salve e teste a página em um smartphone real
```

2. Confira a visibilidade por dispositivo do popup: Verifique se o popup ou a seção que o contém não está oculto em telas pequenas pela opção de responsividade. Um popup marcado para aparecer apenas no desktop é carregado mas mantido escondido no celular.

```
Painel WP -> JetPopup -> abra o popup -> aba de configurações de exibição
Garanta que a visibilidade não esteja restrita a Desktop
Reative a exibição para Mobile e salve
```

3. Desligue o adiamento de JavaScript para o mobile: Se você usa WP Rocket ou Perfmatters com adiamento de scripts, o JavaScript do JetPopup pode não executar a tempo no celular. Adicione o script do JetPopup à lista de exclusões do adiamento e limpe o cache.

```
Painel WP -> WP Rocket -> aba File Optimization -> Delay JavaScript Execution
Adicione 'jet-popup' à lista de exclusões do adiamento
Limpe o cache: WP Rocket -> Clear Cache
```

4. Ajuste o gatilho de rolagem para a altura do mobile: Se o gatilho é 'On Scroll' por porcentagem, a página mobile costuma ser mais curta e pode não atingir o percentual configurado para o desktop. Reduza a porcentagem ou use rolagem por pixels para garantir o disparo no celular.

```
Painel WP -> JetPopup -> abra o popup -> Trigger 'On Scroll'
Reduza a porcentagem de rolagem (ex.: de 70 para 30)
Salve e valide a abertura em um celular real
```

5. Isole conflito de JavaScript no breakpoint mobile: Se o popup ainda não abrir no celular, abra o console do navegador no modo mobile e procure erros de JavaScript. Desative os outros plugins um a um e troque para um tema padrão para identificar o que interrompe a biblioteca do JetPopup.

```
Abra a página no celular ou no modo responsivo do navegador (F12 -> Toggle device)
No Console, observe erros de JavaScript ao carregar a página
Painel WP -> Plugins -> desative os demais plugins um a um até o popup voltar
```


## Código

```javascript
// Abre um JetPopup específico por toque, contornando gatilhos que falham no mobile.
// Substitua 123 pelo ID do seu popup (visível na URL de edição do JetPopup).
jQuery( document ).ready( function( $ ) {
    var popupId = 123;
    // Dispara o popup logo apos o primeiro toque na tela, no mobile.
    $( document ).one( 'touchstart', function() {
        if ( window.JetPopupFrontend ) {
            window.JetPopupFrontend.openPopup( popupId );
        }
    } );
} );
```

## Perguntas frequentes

### Por que meu JetPopup abre no desktop mas não no celular

Na maioria dos casos o gatilho depende de um evento que não existe no toque, como saída de cursor ou inatividade, ou a visibilidade do popup está restrita ao desktop. Troque o gatilho por On Page Load ou On Scroll e reative a exibição para mobile.

### O gatilho de saída de tela funciona no mobile

Não de forma confiável. O gatilho de saída depende do cursor deixar a viewport, algo que não acontece em telas de toque. No celular, prefira gatilhos como On Page Load com atraso ou On Scroll, que respondem a eventos reais do mobile.

### O WP Rocket pode impedir o JetPopup de abrir no celular

Pode. Quando o adiamento de JavaScript do WP Rocket está ativo, o script do JetPopup só executa após uma interação, o que atrasa ou impede o disparo automático no mobile. Adicione jet-popup às exclusões do Delay JavaScript Execution e limpe o cache.

### Como faço o JetPopup aparecer só no mobile

Abra o popup e use as condições de exibição e a visibilidade por dispositivo para mostrar somente em telas pequenas. Combine isso com um gatilho compatível com toque, como On Page Load, e teste sempre em um celular real.

### O gatilho On Scroll não dispara no celular, o que fazer

A página mobile costuma ser mais curta que a do desktop e pode não atingir a porcentagem de rolagem configurada. Reduza o percentual de rolagem ou use rolagem por pixels para garantir que o popup dispare nas telas menores.

### Preciso de código para corrigir o JetPopup no mobile

Na maioria dos casos não, pois a correção é feita pelo painel ajustando gatilho e visibilidade. Quando há conflito de script, um snippet que abre o popup por evento de toque pode ajudar, mas o caminho principal é a configuração no painel do JetPopup.

### Como saber se o problema é do JetPopup ou de outro plugin

Abra a página no modo mobile, verifique o console do navegador e desative os demais plugins um a um, recarregando a cada teste. Se o popup voltar a abrir ao desativar um plugin, o conflito está nele, não no JetPopup.

**Fonte:** [Crocoblock — JetPopup Knowledge Base](https://crocoblock.com/knowledge-base/jetpopup/)
