在TimelineJS中,我想实现一个回调,每次幻灯片(中心的主面板)发生变化时都会触发回调,无论是通过单击侧面的“右”或“左”按钮,还是单击底部时间面板的时间线中的事件。除了在一年前的第 82 期中对此类回调的引用之外,我找不到任何有关此类回调的信息。
关于如何开始的建议?(换句话说,我什至不知道从哪里开始)。
在TimelineJS中,我想实现一个回调,每次幻灯片(中心的主面板)发生变化时都会触发回调,无论是通过单击侧面的“右”或“左”按钮,还是单击底部时间面板的时间线中的事件。除了在一年前的第 82 期中对此类回调的引用之外,我找不到任何有关此类回调的信息。
关于如何开始的建议?(换句话说,我什至不知道从哪里开始)。
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').on("UPDATE", function() {
your_function_that_does_whatever_you_need();
});