Wenn Sie dhtmlxScheduler 6.0 oder früher verwenden, finden Sie die Details hier.
Um Tooltips für Ereignisse anzuzeigen, muss die Tooltip-Erweiterung einmalig auf der Seite aktiviert werden.
scheduler.plugins({
tooltip: true
});
Nach der Aktivierung erscheinen Tooltips mit den Standardeinstellungen.
Nach der Aktivierung der Erweiterung werden Tooltips automatisch mit der Standardkonfiguration angezeigt.
Standardmäßig zeigen Tooltips drei Eigenschaften eines Ereignisses an:
Um den Tooltip-Text anzupassen, verwenden Sie die tooltip_text Vorlage:
scheduler.templates.tooltip_text = function(start,end,event) {
return "<b>Event:</b> "+event.text+"<br/><b>Start date:</b> "+
scheduler.templates.tooltip_date_format(start)+"<br/>"+
"<b>End date:</b> "+scheduler.templates.tooltip_date_format(end);
};
Das Tooltip-Objekt ist unter scheduler.ext.tooltips.tooltip verfügbar. Es bietet Methoden zur Steuerung der Position, des Inhalts und der Sichtbarkeit des Tooltips:
Mehrere Methoden helfen, das Tooltip-Verhalten beim Überfahren von DOM-Elementen zu steuern.
Fügt einen Tooltip mit detaillierter Konfiguration hinzu. Es akzeptiert ein Objekt mit Tooltip-Einstellungen, darunter:
Fügt einen Tooltip für ein bestimmtes Scheduler-Element hinzu. Dies ist eine einfachere Version von attach(). Es nimmt ein Objekt mit:
Entfernt einen Tooltip. Es nimmt:
Standardmäßig werden Tooltips nur für Scheduler-Ereignisse hinzugefügt, aber es ist möglich, Tooltips für jedes andere Scheduler-Element zu setzen.
Die relevanten Methoden in der Tooltip API sind:
Beachten Sie, dass scheduler.ext.tooltips.tooltipFor() nach der Initialisierung des Schedulers aufgerufen werden sollte. Zum Beispiel kann dies im onSchedulerReady Event-Handler platziert werden:
scheduler.attachEvent("onSchedulerReady", function(){
scheduler.ext.tooltips.tooltipFor({
selector: ".dhx_matrix_scell",
html: function (event, node) {
const sectionId = scheduler.getActionData(event).section;
const timeline = scheduler.getView("timeline");
var section = timeline.y_unit[timeline.order[sectionId]];
return `Tooltip for <b>${section.label}</b>`;
}
});
});
Alternativ können Sie diesen Ansatz verwenden:
scheduler.init("scheduler_here");
scheduler.ext.tooltips.tooltipFor({
selector: ".dhx_matrix_scell",
html: function (event, node) {
const sectionId = scheduler.getActionData(event).section;
const timeline = scheduler.getView("timeline");
var section = timeline.y_unit[timeline.order[sectionId]];
return `Tooltip for <b>${section.label}</b>`;
}
});
Tooltips, die auf diese Weise hinzugefügt werden, folgen dem Mauszeiger und berücksichtigen die Einstellungen tooltip_offset_x, tooltip_offset_y, tooltip_timeout und tooltip_hide_timeout.
Diese Methode bietet eine erweiterte Konfiguration für das Tooltip-Verhalten basierend auf Mausbewegungen.
Sie können das Standardverhalten der Tooltips ändern, indem Sie den eingebauten Handler entfernen und einen eigenen hinzufügen. So geht's:
// remove the built-in tooltip handler from tasks
scheduler.ext.tooltips.detach(`[${scheduler.config.event_attribute}]`);
scheduler.ext.tooltips.tooltipFor({
selector: `[${scheduler.config.event_attribute}]`,
html: (event: MouseEvent) => {
if (scheduler.config.touch && !scheduler.config.touch_tooltip) {
return;
}
const evNode = event.target.closest(`[${scheduler.config.event_attribute}]`);
const evId = evNode.getAttribute(scheduler.config.event_attribute);
if(scheduler.getEvent(evId)){
const ev = scheduler.getEvent(evId);
return scheduler.templates.tooltip_text(ev.start_date, ev.end_date, ev);
}
return null;
},
global: false
});
Die Anzeigedauer und Ausblendzeit von Tooltips können über Einstellungen konfiguriert werden.
Um die Verzögerung (in Millisekunden) festzulegen, bevor ein Tooltip für eine Aufgabe angezeigt wird, verwenden Sie die Eigenschaft tooltip_timeout:
scheduler.config.tooltip_timeout = 50;
scheduler.init("scheduler_here");
Um zu steuern, wie lange (in Millisekunden) ein Tooltip sichtbar bleibt, nachdem der Mauszeiger das Element verlassen hat, verwenden Sie die Eigenschaft tooltip_hide_timeout:
scheduler.config.tooltip_hide_timeout = 5000;
scheduler.init("scheduler_here");
Die Tooltip-Position kann angepasst werden, indem Sie die Standardabstände mit diesen Konfigurationseigenschaften ändern:
scheduler.config.tooltip_offset_x = 30;
scheduler.config.tooltip_offset_y = 40;
scheduler.init("scheduler_here");
Standardmäßig werden Tooltips an document.body angehängt. Bei Bedarf können Sie die Anzeige des Tooltips auf einen bestimmten Container beschränken, bevor Sie den Scheduler mit folgendem Befehl initialisieren:
scheduler.attachEvent("onSchedulerReady", function(){
var tooltips = scheduler.ext.tooltips;
tooltips.tooltip.setViewport(container);
});
scheduler.init("scheduler_here");
Nach oben