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

最佳答案

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

基本上,我所做的是在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也适用。

希望对您有帮助。

关于javascript - 如何仅在用户完成游览后才能使用Zurb Foundation Joyride乘车回叫功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23707691/

10-09 18:21