在TimelineJS中,我希望实现一个回调,每次幻灯片(中间的主面板)通过点击"右键"来改变是否发生了这种变化。或"左"两侧的按钮,或通过单击底部时间面板中时间轴中的事件。除了在一年前Issue 82中对它的引用之外,我找不到关于这种回调的任何信息。
关于如何开始这个的建议? (换句话说,我甚至不知道从哪里开始)。
答案 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();
});