2

私は Rails を使用しており、Joyride をセットアップしており、コールバックが機能していpost_ride_callbackますが、ユーザーがツアーを途中でキャンセルしたときではなく、ツアーを完了したときにのみ実行されるように調整したいと考えています。彼らのドキュメントによると、どちらが行われたかを判断できるはずです。

post_ride_callback     : function (){},    // A method to call once the tour closes (canceled or complete)

http://foundation.zurb.com/docs/components/joyride.html

これは私が今持っているものです(これは動作します)application.js

$(document)
  .foundation({joyride: { 
    pre_ride_callback: function() {
      console.log('tour started');
      send_tour_start_event_to_ga();
    },
    post_ride_callback: function() {
      console.log('tour finished');
      send_tour_complete_event_to_ga();
    }
  }}
 )
.foundation('joyride', 'start');

これを使用して Google アナリティクスにイベントを送信しています。ツアーを開始したユーザーのうち、実際に終了したユーザーの割合を追跡できるようにしたいと考えています。ツアーが完了したときにのみ post_ride_callback を実行する方法について何か考えはありますか? この男は何かに取り組んでいるようです: https://github.com/zurb/joyride/pull/119

4

2 に答える 2

2

Foundation 4.3.2 を使用すると、同じ問題に直面しました。最初のツアーが完了したときに、別の Web ページを読み込んで新しいツアーを表示したかったのですが、それはユーザーがツアーを閉じたときにも起こります。

基本的に私がしたことは、foundation.joyride.js ファイルの Templeate > Link に新しいクラス (closeJoyride) を追加したので、そのアクションを制御できます。

 template : { // HTML segments for tip layout
    link    : '<a href="#close" class="closeJoyride joyride-close-tip">&times;</a>',

次に、ユーザーがツアーを閉じたときに関数をトリガーします。

$( ".closeJoyride" ).click(function() {
   $(document).foundation('joyride', 'stop');
});

これで、ツアーが完了したときに post_ride_callback が機能するようになりました。これはFoundation 5でも機能すると思います。

お役に立てば幸いです。

于 2014-07-18T15:48:53.757 に答える