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 Analytics 发送事件,并且我希望能够跟踪开始游览的用户中实际完成游览的百分比。关于如何让 post_ride_callback 仅在游览完成后运行的任何想法?看来这家伙可能正在做某事:https ://github.com/zurb/joyride/pull/119

4

2 回答 2

2

使用 Foundation 4.3.2 我遇到了同样的问题。我想在第一次游览完成时加载其他网页以显示新的游览,但是当用户关闭游览时也会发生这种情况。

基本上我所做的是在foundation.joyride.js 文件中的模板> 链接上添加一个新类(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 回答
0
abort_on_close           : false

默认情况下,abort_on_close 为真。这意味着不会调用骑行后回调方法。如果将其设置为 true,它将被调用。

于 2015-10-20T14:05:56.443 回答