Javascript Can';t使用onclick调用名为clear的函数

Javascript Can';t使用onclick调用名为clear的函数,javascript,Javascript,有一个带有save()和clear()函数的绘图画布。问题是,不能调用clear函数,而可以调用save函数。我试了很多,但还是不知道问题出在哪里。这很奇怪。函数位于完全相同的位置,为什么不能调用clear()呢?我从未遇到过这样的事情 “严格使用”; 让画布; 让ctx; 让flag=false; 让isDot=false; 设previousX=0; 设currentX=0; 设previousY=0; 设电流y=0; 让fillColor=“黑色”; 设冲程=2; 让宽度; 让高度; 函

有一个带有save()和clear()函数的绘图画布。问题是,不能调用clear函数,而可以调用save函数。我试了很多,但还是不知道问题出在哪里。这很奇怪。函数位于完全相同的位置,为什么不能调用clear()呢?我从未遇到过这样的事情

“严格使用”;
让画布;
让ctx;
让flag=false;
让isDot=false;
设previousX=0;
设currentX=0;
设previousY=0;
设电流y=0;
让fillColor=“黑色”;
设冲程=2;
让宽度;
让高度;
函数init(){
canvas=document.getElementById(“can”);
ctx=canvas.getContext(“2d”);
宽度=画布宽度;
高度=画布高度;
canvas.addEventListener(“mousemove”,函数(e){
findxy(“移动”,e);
},假);
canvas.addEventListener(“鼠标向下”,函数(e){
findxy(“向下”,e);
},假);
canvas.addEventListener(“mouseup”,函数(e){
findxy(“向上”,e);
},假);
canvas.addEventListener(“mouseout”,函数(e){
findxy(“out”,e);
},假);
}
功能颜色(颜色){
填充颜色=颜色;
如果(填充颜色==“白色”){
冲程=20;
}否则{
冲程=2;
}
}
函数绘图(){
ctx.beginPath();
ctx.moveTo(上一个,上一个);
ctx.lineTo(currentX,currentY);
ctx.strokeStyle=fillColor;
ctx.线宽=笔划;
ctx.stroke();
ctx.closePath();
}
函数clear(){
控制台日志(“清除”);
如果(确认(“要清除画布?”){
ctx.clearRect(0,0,宽度,高度);
}
}
函数save(){
设img=document.getElementById(“canvasimg”);
img.style.border=“2px solid”;
让dataUrl=canvas.toDataURL();
src=dataUrl;
img.style.display=“inline”;
}
函数findxy(eventType,e){
如果(eventType==“向下”){
previousX=当前X;
先前的y=当前的y;
currentX=e.clientX-canvas.offsetLeft;
currentY y=e.clientY-canvas.offsetTop;
flag=true;
isDot=true;
如果(isDot){
ctx.beginPath();
ctx.fillStyle=fillColor;
ctx.fillRect(电流X,电流Y,行程,行程);
ctx.closePath();
isDot=假;
}
}
if(eventType==“up”| | eventType==“out”){
flag=false;
}
如果(eventType==='move'){
国际单项体育联合会(旗){
previousX=当前X;
先前的y=当前的y;
currentX=e.clientX-canvas.offsetLeft;
currentY y=e.clientY-canvas.offsetTop;
draw();
}
}
}
.container{
显示器:flex;
弯曲方向:行;
}
.帆布{
右边距:10px;
}
.彩色容器{
显示器:flex;
柔性流:行换行;
对齐内容:周围的空间;
高度:75px;
宽度:80px;
右边填充:20px;
}
.color container>div{
宽度:20px;
高度:20px;
保证金:3倍;
}
#绿色{背景:绿色;}
#蓝色{背景:蓝色;}
#红色{背景:红色}
#橙色{背景:橙色}
#黑色{背景:黑色}
#白色的{
背景:白色;
宽度:20px;
高度:20px;
边框:2倍实心;
保证金:7px 3px 3px 3px;
}
img{
左边距:10px;
}
帆布{
边框:2倍实心;
}

帆布
拯救
清楚的
选择颜色
橡皮擦
是一项保留功能。使用任何其他名称:

“严格使用”;
让画布;
让ctx;
让flag=false;
让isDot=false;
设previousX=0;
设currentX=0;
设previousY=0;
设电流y=0;
让fillColor=“黑色”;
设冲程=2;
让宽度;
让高度;
函数init(){
canvas=document.getElementById(“can”);
ctx=canvas.getContext(“2d”);
宽度=画布宽度;
高度=画布高度;
canvas.addEventListener(“mousemove”,函数(e){
findxy(“移动”,e);
},假);
canvas.addEventListener(“鼠标向下”,函数(e){
findxy(“向下”,e);
},假);
canvas.addEventListener(“mouseup”,函数(e){
findxy(“向上”,e);
},假);
canvas.addEventListener(“mouseout”,函数(e){
findxy(“out”,e);
},假);
}
功能颜色(颜色){
填充颜色=颜色;
如果(填充颜色==“白色”){
冲程=20;
}否则{
冲程=2;
}
}
函数绘图(){
ctx.beginPath();
ctx.moveTo(上一个,上一个);
ctx.lineTo(currentX,currentY);
ctx.strokeStyle=填充颜色;
ctx.lineWidth=笔划;
ctx.stroke();
ctx.closePath();
}
函数clearDrawing(){
控制台日志(“清除”);
如果(确认(“要清除画布?”){
ctx.clearRect(0,0,宽度,高度);
}
}
函数save(){
设img=document.getElementById(“canvasimg”);
img.style.border=“2px solid”;
让dataUrl=canvas.toDataURL();
img.src=数据URL;
img.style.display=“inline”;
}
函数findxy(eventType,e){
如果(eventType==“向下”){
previousX=当前X;
先前的y=当前的y;
currentX=e.clientX-canvas.offsetLeft;
currentY y=e.clientY-canvas.offsetTop;
flag=true;
isDot=true;
如果(isDot){
ctx.beginPath();
ctx.fillStyle=fillColor;
ctx.fillRect(电流X,电流Y,行程,行程);
ctx.closePath();
isDot=假;
}
}
if(eventType==“up”| | eventType==“out”){
flag=false;
}
如果(eventType==='move'){
国际单项体育联合会(旗){
previousX=当前X;
先前的y=当前的y;
currentX=e.clientX-canvas.offsetLeft;
currentY y=e.clientY-canvas.offsetTop;
draw();
}
}
}
.container{
显示器:flex;
弯曲方向:行;
}
.帆布{
右边距:10px;
}
.彩色容器{
显示器:flex;
柔性流:行换行;
对齐内容:周围的空间;
高度:75px