我正在编写一些ASP.NET并使用d3绘制散点图,然后使用tipy来做鼠标悬停。
这受到example的启发。
我已经大大贬低了我的图表,所以就是这样:http://jsfiddle.net/scottieb/D9Vjg/
但是,当我将该代码放在ASP.NET中时,它将无法工作!如果我把一个按钮放进去并且把它打成了一个粗略的,那么我就没有问题生成工具提示。
$('button').tipsy({
html: false,
live: true,
fade: true,
gravity: 'e',
title: function () {
return "test";
}
});
对于它的价值,这是代码:
%@ Page Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Reports_test.aspx.cs"
Inherits="Pricing.App.Web.Reports_test" %
asp:content id="bodyContent" contentplaceholderid="Body" runat="server">
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
<script type="text/javascript" src="http://onehackoranother.com/projects/jquery/tipsy/javascripts/jquery.tipsy.js"></script>
<div id="slidegraph"></div>
<script type="text/javascript">
//$(function () {
//var x_data = [1, 1.2, 1.4, 1.6, 1.8];
var x_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var y_data = [2, 4, 6, 7, 8, 9, 10, 12, 14, 15, 19, 20];
var r_data = [5, 5, 5, 5, 10, 10, 10, 10, 4, 4];
var c_data = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2];
var ipg_data = ['MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD', 'MUSTARD'];
var srp_data = [2, 4, 6, 7, 8, 9, 10, 12, 14, 15, 19, 20];
var old_data = [2, 4, 6, 7, 8, 9, 10, 12, 14, 15, 19, 20];
var data = [];
for (i = 0; i < x_data.length; i++) {
data.push({ "x": x_data[i], "y": y_data[i], "c": c_data[i], "r": r_data[i]
, "ipg": ipg_data[i], "srp": srp_data[i], "old": old_data[i]
});
}
var h = 400;
var w = 400;
var margin = 40;
var x = d3.scale.linear().domain([0, 10]).range([0 + margin, w - margin]),
y = d3.scale.linear().domain([20, 0]).range([0 + margin, h - margin]),
r = d3.scale.linear().domain([0, 10]).range([3, 20]),
c = d3.scale.ordinal().domain([1, 7]).range(["#FF0000", "#00FF00", "#0000FF"
, "#FFFF00", "#00FFFF", "#FF00FF", "#FFFFFF"]);
var vis = d3.select("#slidegraph")
.append("svg:svg")
.attr("width", w)
.attr("height", h);
vis.selectAll("circle").data(data).enter().append("svg:circle")
.attr("stroke", "black")
.attr("cx", function (d) {
return x(d.x);
}).attr("cy", function (d) {
return y(d.y);
}).attr("fill", "red").attr("r", 15)
;
$('svg circle').tipsy({
html: true,
//live: true,
//fade: true,
gravity: 'w',
title: function () {
alert("gotcha!");
return "test";
}
});
// });
</script>
/asp:content>
更新
它更奇怪了。在IE中,没有任何作用。在Firefox中我得到了工具提示,但它默认为屏幕的左上角,而不是圆圈旁边。可悲的是,我无法在我们的开发机器中获得镀铬。
答案 0 :(得分:2)
默认情况下,ASP.net母版页通常具有较旧的DOCTYPE。删除它并放入HTML 5 doc类型<!DOCTYPE html>
。此外,请确保IE未设置为以兼容模式显示网站。
答案 1 :(得分:1)
这完全是一个浏览器问题。感谢paxRoman种植这粒种子。我让它在chrome中完美无缺地工作,在Firefox中完全没有,而在IE中根本没有。这可能不会让任何人感到震惊。