我正在使用almende timeline.js为我的 Web 应用程序创建时间线。
我想通过在双击范围时将用户发送到不同的 URL 来扩展timeline.js 库的功能,同时记住时间线设置为不可编辑。
这是我的js:
function drawVisualization(){
var debug = 0;
data = new google.visualization.DataTable();
data.addColumn('datetime', 'start');
data.addColumn('datetime', 'end');
data.addColumn('string', 'content');
data.addColumn('string', 'id');
var options = {
"width": "100%",
"height": "300px",
"editable": false,
"style": "box",
//"min": min_boundary,
"zoomMin": 1000 * 60 * 60 * 24,
"zoomMax": 1000 * 60 * 60 * 24 * 31 * 3
};
timeline = new links.Timeline(document.getElementById('mytimeline'));
if(sugboals.length != 0){
$.each(sugboals, function(index, value, tess) {
//console.log('ID: ' + value.id + ' Start: ' + value.start + ' End: ' + value.end + ' Name: ' + value.name);
start = dateTimeSplit(value.start);
end = dateTimeSplit(value.end);
data.addRows([[new Date(start.year,start.month,start.day), new Date(end.year,end.month,end.day), value.name, value.id]]);
});
}
/*On Custom Double Click - Send the user to different page*/
function getSelectedRow() {
var row = undefined;
var sel = timeline.getSelection();
if (sel.length) {
if (sel[0].row != undefined) {
row = sel[0].row;
}
}
return row;
}
var onDblClickNotEditable = function (event) {
var row = getSelectedRow();
var name = data.getValue(row, 2);
var id = data.getValue(row, 3);
console.log('Name: ' + name, 'Id: ' + id);
window.open('http://www.newpage.com/view/'+ id +'/');
timeline.draw(data);
};
/*Double Click End*/
// Add event listeners
google.visualization.events.addListener(timeline, 'link', onDblClickNotEditable);
timeline.draw(data, options);
}
你能推荐任何这样做的方法吗?
谢谢