2012-05-30 89 views
-2

我试图用html5,js和touch事件绘制一个正方形,但是当我尝试在画布上绘制时没有任何显示。我究竟做错了什么?为什么我不能在HTML5画布上绘制正方形?


这里是我的代码...

的Javascript:


function square() 
{ 
    var can = document.getElementById('canvasSignature'); 
var ctx = can.getContext('2d'); 


can.addEventListener('touchstart', onTouchStart, false); 

function onTouchStart(e) { 
ctx.fillRect(0,0,300,300); 

} 
} 

HTML5:


<div id="canvasDiv"> 
    <canvas id="canvasSignature" width="580px" height="788px" style="border:2px solid #000; background: #FFF;"></canvas> 
</div> 

<div id="Square"> 
    <p><button onclick="square();">Square</button></p> 
</div> 

什么我的代码错了吗?

+1

你有什么试过? http://mattgemmell.com/2008/12/08/what-have-you-tried/ –

+0

这没有帮助。我需要真正的帮助......就像一个教程,而不是一个关于如何制定问题的讲座。我想我的问题很清楚。请,有人能帮我解决这个问题吗?谢谢。 – Wardenclyffe

+0

你的代码看起来不错;你可以用你的代码设置和共享一个非工作的[JSFiddle](http://jsfiddle.net)吗? – apsillers

回答

-1

可能你在对方内部有两个函数会导致某种解释错误,因为我的错误控制台说它找不到函数square()。

http://jsfiddle.net/GkL7P/4/

我编辑有点受外部移动的变量和分离两个功能...

+0

在这种情况下,避免函数内函数几乎肯定是一个好的设计决策,但似乎并没有破坏他的代码。请参阅http://jsfiddle.net/Q4DSq/以获取包含'square()'中所有代码的功能版本。 (或者你的浏览器崩溃了吗?也许这是一个交叉兼容的问题。) – apsillers

+0

也许他的代码正在工作,他在页面上还有其他内容正在破坏脚本... square();可能是JSFiddle中的X-Compat问题...我想他应该再次检查他的整个页面... – pandavenger

+0

我尝试了两个建议的jsfiddle网站,但在两个方格上,当我试图绘制它时仍然没有出现:(它是否在你的电脑上工作? – Wardenclyffe

0

其实,我复制并粘贴代码,并测试了它。它似乎在我的Android手机上工作正常。

+0

第二个'var can'是第一个的复制品 - 看起来好像没有太多的意思 – Chuck

+0

@Chuck,你说得对,其实我试过原创的海报代码和coul不会重现问题。我收回了我的答案。 – RajV