0

私はd3とjsプロジェクトに取り組んでいます。

関数の冒頭は次のようになります。

$(document).ready(function() { 
    d3.select("#aid").select(".abutton").on("mousemove",function() {
        afile.style("top", (event.clientY+10)+"px").style("left",(event.clientX+15)+"px");
        afile.html("<h3>Click text here</p><p>or here</p>");
    }); 

私はかなりのグーグルをやった!

本質は、mouseoverで、機能を実行する必要があるということです。イベント変数はグローバルであり、client* プロパティもグローバルであるため、これは Chrome と IE で機能します。

私が理解しているように、解決策はeventObject. これを行うと、コードは次のようになります。

$(document).ready(function() { 
    d3.select("#aid").select(".abutton").on("mousemove",function(event) {
        afile.style("top", (event.clientY+10)+"px").style("left",(event.clientX+15)+"px");
        afile.html("<h3>Click text here</p><p>or here</p>");
    });

Firefoxのログは私に与えます:

[09:59:04.308] TypeError: イベントは定義されていません @ filepathofjavascriptfile

同様に、Chrome では壊れます。

キャッチされていない TypeError: javascriptfile の未定義のファイルパス (無名関数) のプロパティ 'clientY' を読み取ることができません help.js:34

私は何を間違っていますか?他に何か必要な場合はお知らせください。

4

1 に答える 1

6

試す:

d3.select("#aid").select(".abutton").on("mousemove",function() {
    afile.style("top", (d3.event.clientY+10)+"px").style("left",(d3.event.clientX+15)+"px");
    afile.html("<h3>Click text here</p><p>or here</p>");
});

何らかの理由で、これが d3 がイベント オブジェクトを公開する方法です。

于 2013-05-24T15:09:57.817 に答える