我将Foundation4与CakePhp2.4结合使用,到目前为止,我对此没有任何问题。无论我做什么,当页面加载完成时,joyRide的postRide回调都会被调用(当joyRide完成时不会再调用)。
此外,由于我的目标只是在Joyride结束后立即启动initialize()
(一个自定义函数),因此作为替代方案,我尝试将事件侦听器绑定到.joyride-close-tip
类,甚至绑定到Joyride窗格中的自定义元素id,所有这些都是在页面加载时调用的。
我已经尝试了很多不同的变体,以至于我无法充分发布我尝试过的所有内容,但这是我目前的代码:
注意:
1)我在noConflict模式下使用jQuery,因为这一切都由CakePhp2.4控制,因此,$j前缀而不是jQuery通常的$,
2)我不能在这个应用程序中使用zepto(尽管我不知道为什么;但是,如果我加载它,什么都不起作用)。
我的HTML:
<ol class="joyride-list" data-joyride>
<li data-id="module-name">
<h4>Welcome!</h4>
<p>You're about to start the module. But first, we'll make sure you understand the interface.</p>
</li>
<!--- several more <li> pairs ---->
<li data-button="begin">
<h4>All Set?</h4>
<p>Click "Begin" to get started on this module!</p>
</li>
</ol>
我的JS:
<script type="text/javascript" src="appname/js/vendor/jquery.js"></script>
<script type="text/javascript" src="appname/js/foundation.min.js"></script>
<script type="text/javascript" src="appname/js/app.js"></script> <!-- custom js functions that reply on jquery and have no collisions with Foundation -->
<script>
$j(document).foundation('joyride',
'start',
{ postRideCallback: initialize() }
);
// have also tried:
// $j(document).foundation().foundation('joyride','start',{postRideCallback: initialize()});
</script>
对于每个人来说,问题是我将一个实际的函数交给了postRideCallBack
,而不是一个函数定义——即。简单地将CCD_ 4封装在CCD_。