消除HTML表格中显示的十进制字符串(通过poshytip mouseover)

时间:2012-05-27 03:47:13

标签: javascript jquery mouseover d3.js

我的页面上有路径元素,它们有一个属性“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') );
  });

有没有办法防止这种情况,或者有办法将此表指定为对象的内容?

1 个答案:

答案 0 :(得分: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'
    });