barba.js 2.x(v2)でContact Form 7を正常に動作させる方法

最近案件で、barba.jsという非同期で画面遷移できるフレームワークを利用してみました。
結構いまさらなんですが、簡単に導入できて、めちゃくちゃスムーズにページが切り替わって感動しました。
動作がめちゃサクサクなので、これからどんどん取りいれて行きたいです。

WordPressとも相性がいいのですが、これどうやって動かすんだろう?というのがちょいちょいあって、
検索しても日本語サイトだと、バージョン1系の情報しか出てこなかったのでまとめておきます。

今回は、barba.js 2.x(v2)を利用したときに、Contact Form 7をきちんと動作させる方法です。

// barba.jsのbeforeEnterのタイミングで実行する
barba.init({
  transitions: [{
    beforeEnter({ next }) {
      contactForm7Run(next);
    }
  }]
});

// Contact Form 7を正常動作させるための関数
function contactForm7Run(next) {
  var cfSelector = 'div.wpcf7 > form';
  var cfForms = $(next.container).find(cfSelector);
  if (cfForms.length) {
    $(cfSelector).each(function() {
      var $form = $(this);
      wpcf7.init( $form[0] );
    });
  }
}

beforeEnterのタイミングで、Contact Form 7のinit関数を実行すると、正常に動作するようになりました。

ちなみに、barba.jsのissue内での回答を参考にした(コピペした)ので、以下にリンクを載せておきます。
https://github.com/barbajs/barba/issues/122#issuecomment-809281869

About Me

プロフィール画像

ユーキと申します。北海道恵庭市という札幌と新千歳空港の間でフリーランスのWebエンジニアとして活動してます。

当サイトのブログでは、主にWeb制作全般、フリーランス周りの情報など色々なノウハウや知識を載せています。
その他日々気になったこと、思ったことも書いてます。

お仕事の相談など何かありましたら、お問い合わせかツイッターのDMからお気軽にご連絡くださいませ。

お問い合わせはこちら

ツイッターはこちら

ポートフォリオはこちら

Latest Posts

Popular Posts

TOP