1

我的页面上有路径元素,它们有一个属性“title”,它是一个 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 看起来不错,但是当我更新滑块(更新表格)时,一些提示会得到长的十进制字符串。上表来自 console.log 更新时应显示的内容。但是,值“1.2%”显示为“1.20000000000000002%。”从 csv 读取的输入值最初是精确到小数点后一位的字符串值。这就是我使用 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 提供该功能,而不是将其保存到标题 attr。

$('.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 回答