1

私のページには、情報の HTML テーブルである属性「タイトル」を持つパス要素があります。次に例を示します。

<table>
<tr>
    <td>
        <b><u>California</u></b>
    </td>
</tr>
<tr>
    <td>
        <u>University</u>
    </td>
    <td>
        <u>Percent</u>
    </td>
</tr>
<tr>
    <td>
        California 1:
    </td>
    <td>
        6.6%
    </td>
</tr>
<tr>
    <td>
        California 2:
    </td>
    <td>
        1.2%
    </td>
</tr>
<tr>
    <td>
        California 3:
    </td>
    <td>
        0.5%
    </td>
</tr>
<tr>
    <td>
        California 4:
    </td>
    <td>
        10.1%
    </td>
</tr>
<tr>
    <td>
        California 5:
    </td>
    <td>
        3.6%
    </td>
</tr>
</table>

最初にページをロードしたとき、poshytips は問題ないように見えますが、(テーブルを更新する) スライダーを更新すると、一部のヒントが長い 10 進文字列になります。上記の表は、更新時に表示されるはずの console.log からのものです。ただし、値「1.2%」は「1.20000000000000002%」と表示されます。csv から読み込まれる入力値は、最初は小数点以下 1 桁の文字列値です。これは、d3 を使用してヒントを更新する方法です (「maketip」関数は上記の表を返すだけです)。

state_path.transition()
  .duration(1000)
  .attr('title', function(d) {
    return maketip(d,y);
  })
  .each("end", function(d) {
    var $this = $(this);
    $this.poshytip("update", $this.attr('title') );
  });

これを防ぐ方法、またはこのテーブルをオブジェクトのコンテンツとして指定する方法はありますか?

4

1 に答える 1

0

これが私が見つけた答えです-コメントに感謝します:タイトル属性に保存する代わりに、poshytipに関数を与えてみてください。

$('.county_path').poshytip({
        content:    function() { 
            return maketip(this.__data__.id, this.__data__.properties.name); 
        },
        className: 'tip-ihme',
        slide:      false,
        followCursor:   true,
        alignTo:    'cursor',
        alignX:     'center'
    });
于 2012-05-30T22:52:47.613 に答える