Kann mir jemand mit dem Problem beraten. Ich muss HTML-Element, auf dem Mauszeiger befindet sich am Ende der d3.xhr
Anfrage Verarbeitung erhalten. Und diese d3.xhr
sollten Anrufe innerhalb Warteschlange: async.queue
Wie bekomme ich ein Element an der Mausposition innerhalb der d3.xhr und der asynchronen Warteschlange?
define([
"d3",
"lodash",
"async",
], function (d3, _, async) {
var html = d3.select("html");
async.queue(function (cell, callback) {
d3.xhr("/myurl", function (error, data) {
var data = _.merge(JSON.parse(data.response), cellDetails);
//processing data
console.log(d3.mouse(html)); //this line fails
}
}
Der Fehler, die
Uncaught TypeError: Cannot read property 'sourceEvent' of null
k @ d3.v3.min.js:1
aa.mouse @ d3.v3.min.js:3
(anonymous function) @ myJSfile.js:77
(anonymous function) @ d3.v3.min.js:1
t @ d3.v3.min.js:1
u @ d3.v3.min.js:1
in der Konsole erscheint allgemeine Aufgabe ist es verbirgt Tooltip richtig, denn jetzt ist es nicht jedes Mal verschwinden. In mehr Details. Wir haben eine Tabelle:
<table>
<tr>
<td class="fav">Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
<tr>
<td class="fav">Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
<tr>
<td class="fav">Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
</table>
<div class="tooltip" style="visibility:hidden"></div>
Wir sollten auf die Zelle in der Tabelle navigieren können, wenn MouseEnter- auf Zelle dann js Anfrage über d3.xhr innerhalb Asynchron-Warteschlange sendet. Als Ergebnis müssen wir die Antwort im Tooltip anzeigen, wenn sich die Maus immer noch in derselben Zelle befindet. Diese Überprüfung ist erforderlich, da die Anforderung/Antwort einige Zeit in Anspruch nimmt und der Benutzer zu einer anderen Zelle navigieren oder sogar die Tabellengrenzen verlassen kann. In diesem Fall sollten wir den Tooltip ausblenden.
Ich habe versucht, Ereignis wie 'mouseenter', 'mouseleave' auf dem Tisch, HTML und andere Elemente auf der Seite hinzuzufügen, aber es funktioniert nicht ok für mich. Einfacher zu überprüfen, wo sich die Maus befindet. Bitte helfen.
console.log (event.clientX); funktioniert auch nicht. Gibt undefined zurück – Volodymyr