Foundation4:Joyride在页面加载时触发postRideCallback

时间:2013-11-26 17:48:46

标签: javascript jquery cakephp zurb-foundation zurb-joyride

我正在使用Foundation4与CakePhp2.4一起使用,到目前为止,对此没有任何问题。无论我做什么,当页面完成加载时都会调用joyRide的postRide回调(当Joyride完成时不会再调用)。

此外,由于我的目标只是在Joyride结束时立即触发initialize()(自定义函数),作为替代方案,我尝试将事件侦听器绑定到.joyride-close-tip类甚至自定义元素在joyride窗格中的id,所有这些也是在页面加载时被调用。

我已经尝试了很多不同的变体,我无法充分发布我尝试过的所有内容,但这是我当前的代码:

注意:
1)我在noConflict模式下使用jQuery,因为这一切都由CakePhp2.4控制,因此,$ j前缀而不是通常的$ for 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>

1 个答案:

答案 0 :(得分:0)

对于每个人的参考,问题是我将实际函数交给postRideCallBack,而不是函数定义 - 即。简单地将initialize()包裹在function() { initialize(); }中解决了问题。