我有以下函数,除其他参数外,它接收一个名为 pack_choice 的参数(它是一个数字)。根据数字,我想为 var 分配一个文本,然后在 Canvas 上打印这个 var。
这里是完整的函数:
function create_voucher(visitor_name, unique_number, pack_choice)
{
var canvas = $("#canvas_voucher")[0];
var str_pack_name;
alert(pack_choice);
switch (pack_choice)
{
case 1:
str_pack_name = 'text 1';
alert(str_pack_name);
break;
case 2:
str_pack_name = 'text 2';
alert(str_pack_name);
break;
case 3:
str_pack_name = 'text 3';
alert(str_pack_name);
break;
}
alert(str_pack_name);
if (canvas.getContext)
{
var ctx = canvas.getContext('2d');
// Draw shapes
var img = new Image();
img.src = 'images/voucher.jpg';
img.onload = function(){
ctx.drawImage(img,0,0);
ctx.fillStyle="#000000";
ctx.font="bold 25px monospace";
ctx.fillText(str_pack_name, 600, 120);
...draw name...
...draw number...
draw_voucher_img();
...jQuery functions...
}
} else {
alert('Please update your browser');
}
}
alert(pack_choice);
确实给了我传递的号码。但是 alert(str_pack_name);
在警报中给我 undefined
消息并将其绘制在 Canvas 上。
为什么会发生这种情况,我该如何解决?
最佳答案
只需更改您的switch case 语句
以识别字符串而不是数字:
switch (pack_choice) {
case '1':
case '2':
case '3':
}
这应该可以解决问题。
关于javascript - 从函数中的 switch 语句更改 var 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724239/