在TimelineJS中实现回调

时间:2013-04-27 14:52:34

标签: javascript

TimelineJS中,我希望实现一个回调,每次幻灯片(中间的主面板)通过点击"右键"来改变是否发生了这种变化。或"左"两侧的按钮,或通过单击底部时间面板中时间轴中的事件。除了在一年前Issue 82中对它的引用之外,我找不到关于这种回调的任何信息。

关于如何开始这个的建议? (换句话说,我甚至不知道从哪里开始)。

1 个答案:

答案 0 :(得分:1)

Timeline JS会在事件更新时触发事件,代码位于最新版本的第5274行:

function upDate() {
    config.current_slide = current_slide;
    VMM.fireEvent(layout, "UPDATE");
};

fireEvent的代码是:

VMM.fireEvent = function(element, the_event_type, the_data) {
    var e;
    var _event_type = "click";
    var _data = [];

    if (the_event_type != null && the_event_type != "") {
        _event_type = the_event_type;
    }
    if (the_data != null && the_data != "") {
        _data = the_data;
    }

    if( typeof( jQuery ) != 'undefined' ){
        jQuery(element).trigger(_event_type, _data);

        //return e;
    }

};

然后重要的部分是:

jQuery(element).trigger(_event_type, _data);

所以,你需要做的就是弄清楚元素布局是什么,所以我暂时将upDate函数编辑为:

function upDate() {
    console.log($(layout).attr('id') + ' : ' + $(layout).attr('class'));
    config.current_slide = current_slide;
    VMM.fireEvent(layout, "UPDATE");
};

并查看它为元素的类/ id记录的内容。然后,假设它回来时类是'timeline',例如,你会写这样的东西:

$('.timeline').on("UPDATE", function() {
    your_function_that_does_whatever_you_need();
});