0

私のジョイライドはうまく機能します。ページのロード後に開始されます。停止ボタンをクリックするか、ツアーを終了すると停止します。私の再起動リンクは、ジョイライド ツアーを再開します。それだけ...

Joyride 設定を追加すると、cookie_monster: true訪問のたびにツアーが再開されなくなります。良い!残念ながら、再起動リンクが機能しなくなります。動作は理にかなっています。start 関数は、ページの読み込み時に呼び出されたのか、リンクから呼び出されたのかわかりません。リンクは他の方法を使用するか、Cookie チェックをバイパスするように設定する必要があります。

cookie_monster初回のみ表示するデバイスによって非表示になった後、ユーザーがジョイライドを開始できるようにする魔法を知っていますか?

本文のマークアップ:

<a href='#', data-joyride-restart>tips</a>

<p id='first-stop'>First stop content</p>
<p id='second-stop'>Second stop content</p>

<ol class='joyride-list' data-joyride data-joyride-name='my_name',
  data-joyride-autostart='true'>
  <li data-id='first-stop', data-text='Next'>
    <p>First stop tip</p>
  </li>
  <li data-id='second-stop', data-text='Next'>
    <p>Second stop tip</p>
  </li>
  <li data-text='End'>
    <p>Last stop modal tip</p>
  </li>
</ol>

Javascript:

;$(function() {
  var tour_root = $('ol[data-joyride]')
  if (tour_root !== undefined){
    var attr = tour_root.attr('data-joyride-name');
    var cookie_name;
    if (attr !== undefined){
      cookie_name = attr;
    } else {
      cookie_name = 'joyride';
    }
    $(document).foundation({
      joyride : {
        'cookie_monster': true,
        'cookie_domain': 'domain.com',
        'cookie_name': cookie_name
      }
    });
    attr = tour_root.attr('data-joyride-autostart');
    if (attr !== undefined && attr.match(/true/i)) {
      $(document).foundation().foundation('joyride', 'start');
    }
  }
  $('a[data-joyride-restart]').on('click', function (e){
    e.preventDefault();
    $(document).foundation().foundation('joyride', 'start');
  });
});
4

1 に答える 1

0

質問を書くことは、私がトリックを解決するのに役立ちました. (この動作の良い例が見つからなかったため、投稿したままにします。)

  $('a[data-joyride-restart]').on('click', function (e){
    e.preventDefault();
    $(document).foundation({
      joyride : {
        'cookie_monster': false
      }
    }).foundation().foundation('joyride', 'start');
  });

cookie-monsterこのコードは、 Joyride に開始を求める前に設定をリセットします。

より良い方法があれば、愛を共有してください!

于 2015-03-14T06:34:55.703 に答える