我怎样才能使用Zurb Foundation的Joyride post_ride_callback,但只有当用户完成巡演时?

时间:2014-05-17 04:50:04

标签: javascript ruby-on-rails zurb-foundation zurb-joyride

我正在使用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

2 个答案:

答案 0 :(得分:2)

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

基本上我所做的是在模板上添加一个新类(closeJoyride)>链接在foundation.joyride.js文件中,因此我们可以控制该操作。

 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将在游览完成后正常工作。我想这也适用于基金会5。

我希望我帮助过你。

答案 1 :(得分:0)

abort_on_close           : false

默认情况下,abort_on_close为true。这意味着不会调用post-ride回调方法。如果将其设置为true,则会调用它。