我正在制作一个票务系统的小仪表板概述,该系统在侧面运行一个小图表。此图表通过jqx图表呈现。渲染本身工作正常,但它的工具提示让我有些头疼。
$(document).ready(function() {
var over = <?php echo '100'; ?>;
var totaal = <?php echo '400'; ?>;
$('#bar-gauge-uren').jqxBarGauge({
colorScheme: "scheme04",
values: [over],
max: [totaal],
relativeInnerRadius: 0.8,
tooltip: {
visible: true,
formatFunction: function(over, totaal) {
var realVal = parseInt(over);
var totaalVal = parseInt(totaal);
alert(totaalVal);
return ('Totaal aantal uren: ' + totaalVal + ' <br/>Price Index:' + realVal);
},
}
});
});
&#13;
我正在尝试访问我的函数2变量。 totaal变量和over变量。 over变量工作正常,在概述中显示得很好,但totaal变量不是。我试图提醒它,但它返回0,而它在图形渲染中被调用时工作正常(它在条形图上显示400总计,因为我的红色条仅填充到100看到图像)
我不确定我做错了什么。我是否在函数中传递了我的变量错误?
答案 0 :(得分:3)
问题是formatFunction
函数还传入了一个具有相同名称的变量。它会影响同名的任何其他变量。
示例:
var x = 10;
function f() {
console.log(x); // 10
}
function g(x) {
console.log(x); // Whatever was passed to g
}
f();
g(123);
&#13;
如果要捕获外部变量,请从totaal
定义中删除formatFunction
或将其命名为其他内容。
formatFunction: function(over) {
...
}
或
formatFunction: function(over, anotherVariableName) {
...
}
答案 1 :(得分:0)
之前转换为int,
$(document).ready(function (){
var over = <?php $num = "100"; echo (int)$num; ?>;
var totaal = <?php $num = "400"; echo (int)$num; ?>;
$('#bar-gauge-uren').jqxBarGauge({
colorScheme: "scheme04", values: [over], max: [totaal], relativeInnerRadius: 0.8, tooltip: {
visible: true, formatFunction: function (over, totaal){
var realVal = parseInt(over);
var totaalVal = parseInt(totaal);
alert(totaalVal);
return ('Totaal aantal uren: ' + totaalVal +' <br/>Price Index:' + realVal);
},
}
});
});
答案 2 :(得分:0)
&#34;价值观&#34;属性是指将绘制的量规中的每个弧。 因此,拥有值:[over]将为您绘制一个弧形,就像在您的图像中填充红色,与“#”结束时的比例相等。变量值。 但是为了知道在弧线内绘制多少红色,你需要一系列的值,因此&#34; max&#34;定义最大边界的属性。
为每个悬停的弧调用formatFunction。 第一个参数将是实际值 - &#34; over&#34;,第二个值将是数组内的索引。 因此,具有函数(over,totaal){...}将类似于具有函数(value,index){...}。 所以&#34; totaal&#34;将变为0,这是&#34; over&#34;的指数在&#34;值内&#34;阵列。
规格可用here
答案 3 :(得分:0)
您必须将两个变量传递给函数:)
Dim lastIndex As Integer = txtRTB.Text.Length - 1
While lastIndex > -1
lastIndex = txtRTB.Text.Substring(0, lastIndex).LastIndexOf(search)
If lastIndex > -1 Then
txtRTB.Select(lastIndex, search.Length)
txtRTB.SelectedText = search & controlText & replace
End If
End While
&#13;
$('#Working').click(
function(over, totaal) {
var over = '100';
var totaal = '400';
var realVal = parseInt(over);
var totaalVal = parseInt(totaal);
alert ('Totaal aantal uren: ' + totaalVal + ' Price Index:' + realVal);
});
var over = '100';
var totaal = '400';
$('#notWorking').click(
function(over, totaal) {
var realVal = parseInt(over);
var totaalVal = parseInt(totaal);
alert ('Totaal aantal uren: ' + totaalVal + ' Price Index:' + realVal);
});
&#13;
#Working {
height: 20px;
width: 20px;
background-color: green;
}
#notWorking {
margin-top: 30px;
height: 20px;
width: 20px;
background-color: red;
}
&#13;