1

我正在按照示例使用 jquery 工具提示。我的标题出现在画布上。我不知道如何摆脱它。当我将鼠标悬停在画布上时,我也看到了。请看我附上的图片

$(function() {

    var $chart = $( "#placeholder" ),
        ttPos = $.ui.tooltip.prototype.options.position;

    $.plot(
        $chart, 
        [{
            label: "Number of users",
            data:[
                [ 1, 2233 ],
                [ 2, 1294 ],
                [ 3, 1658 ],
                [ 4, 1603 ],
                [ 5, 1790 ],
                [ 6, 2103 ]
            ]
        }],
        {
            series: {
                lines: { show: true },
                points: { show: true }
            },
            grid: {
                hoverable: true
            },
            legend: {
                show: false
            }
        }
    );

    $chart.bind( "plothover", function( e, pos, item ) {

        var isTooltip = $chart.is( ":ui-tooltip" );

        if ( item !== null && isTooltip === false ) {

            var label = item.series.label,
                data = item.datapoint[1],
                content = label + "<br/><hr>" + data,
                evtPos;

            evtPos = $.extend( ttPos, {
                of: {
                    pageX: item.pageX,
                    pageY: item.pageY,
                    preventDefault: $.noop
                }
            });

            $chart.attr( "title", content  )
                  .tooltip({position: evtPos,
                            content: content})
                  .tooltip( "open" );

        }
        else if ( item === null && isTooltip === true ) {

            $chart.tooltip( "destroy" );

        }

    });

});
4

1 回答 1

3

默认情况下,jquery ui 工具提示要求它弹出的元素有一个title attribute(这就是 jquery ui 知道将事件绑定到哪些元素的方式)。这段代码的第一行:

$chart.attr( "title", content  )
      .tooltip({position: evtPos,
                content: content})
      .tooltip( "open" );

正在设置该属性,这就是您在屏幕截图中看到的内容。

如果您将其更改为:

$chart.tooltip({position: evtPos,
                content: content,
                items: '*'})
      .tooltip( "open" );

这仍然应该允许在没有title文本的情况下弹出工具提示。在这里拉小提琴。

老实说,我发现该代码示例非常迟钝。按照 flot 文档中的这个例子,你会得到更好的服务。

于 2013-10-23T01:25:45.807 回答