2

DOM などを調べてみましたが、ハンドラーに「.tooltip」が追加されている理由がわかりません。削除しても何の影響もありません。一見、重要な価値はありません。

    g.selectAll("circle")
        //
        //why is .tooltip appended here?
        //
        .on("mouseover.tooltip", function(d) {
        d3.select("text#" + d.line_id).remove();
        d3.select("#chart")
            .append("text")
            .text(d.late_percent + "%")
                .attr("x", time_scale(d.time) + 10)
                .attr("y", percent_scale(d.late_percent) - 10)
                .attr("id", d.line_id);
    });

説明をいただければ幸いです。

4

2 に答える 2

2

名前空間です

http://api.jquery.com/on/

http://docs.jquery.com/Namespaced_Events

「jQuery は名前空間イベントと呼ばれる概念を提供します。イベントを宣言するときにクラス名をイベントに追加するだけです。その名前空間イベントは、アンバインドとトリガーの両方で参照できます。」

$('.class').bind('click.namespace', function(){}); 
$('.class').trigger('click.namespace');
$('.class').unbind('click.namespace');
于 2012-10-02T17:12:15.643 に答える
0

この場合、selection.on の D3 ドキュメントで説明されているように、これは同じイベントに対して複数のリスナーを登録する方法にすぎません。たとえば、 に 2 つのリスナーを登録する場合は、 とmouseoverを使用する必要があり.on("mouseover.foo",...ます.on("mouseover.bar",...

それ以外の場合、2 回だけ使用すると、新しいリスナーを追加する代わりに.on("mouseover",..、既に登録されているリスナーが置き換えられます。mouseoverこのtooltip部分には特別な意味はなく、ただの識別子です。

于 2012-11-08T19:17:56.733 に答える