Javascript 使用jquery的2d画布

Javascript 使用jquery的2d画布,javascript,jquery,html,Javascript,Jquery,Html,与html5问题相比,这更像是一个jquery问题,但这是一个很好的例子 <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> <script type="text/javascript">

与html5问题相比,这更像是一个jquery问题,但这是一个很好的例子

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                context = $("#mainCanvas")[0].getContext("2d");
                alert(context);

                context.fillStyle = "rgb(200,0,0)";  
                context.fillRect (10, 10, 55, 50);  

                context.fillStyle = "rgba(0, 0, 200, 0.5)";  
                context.fillRect (30, 30, 55, 50);
            });
        </script>
    </head>
    <body>
        <canvas id="mainCanvas" width="800" height="600">
        </canvas>
    </body>
</html>
需要索引到对象中是笨重和不直观的。我的问题是,jquery是否有办法推断jquery对象上的“缺失”函数将自动包含在包装对象中?我是否缺少一些jquery语法技巧


谢谢。

据我所知,无法覆盖对缺少的Javascript方法的调用。这也是一个遗憾,因为我真的可以用这样的东西来解决我最近一直在研究的问题。您最好使用某种函数包装器,如下所示:

callFunction(obj, "methodName", [args], function() { /*fallback*/ });
但这并不十分漂亮,而且性能也不太好。耸耸肩

但就你而言,这真的那么糟糕吗?您只需要进行一次调用,然后缓存掉所有其他调用的图形上下文。如果索引语法对您来说真的是一种冒犯,那么在这个调用中少使用jQuery也是一种更干净的选择:

var ctx = document.getElementById("mainCanvas").getContext("2d");

如果你关心这些事情,那也会快一点。实际上,jQuery在画布操作方面几乎没有提供任何功能。

我知道,没有办法覆盖对缺少的Javascript方法的调用。这也是一个遗憾,因为我真的可以用这样的东西来解决我最近一直在研究的问题。您最好使用某种函数包装器,如下所示:

callFunction(obj, "methodName", [args], function() { /*fallback*/ });
但这并不十分漂亮,而且性能也不太好。耸耸肩

但就你而言,这真的那么糟糕吗?您只需要进行一次调用,然后缓存掉所有其他调用的图形上下文。如果索引语法对您来说真的是一种冒犯,那么在这个调用中少使用jQuery也是一种更干净的选择:

var ctx = document.getElementById("mainCanvas").getContext("2d");
如果你关心这些事情,那也会快一点。事实上,jQuery在画布操作方面几乎没有提供任何帮助。

感谢您的回复:)是的,jQuery在处理画布元素时并没有给我带来太多好处,但我现在在jQuery中思考。每当我看到类似于“getelementby…”的东西时,我的大脑就会说“不!美元符号!美元符号!!!$$$”我想这更像是一场哲学讨论。谢谢你的回答:)是的,当我在画布元素上乱搞时,jquery买不到多少东西,但我的大脑现在在jquery中思考。每当我看到类似于“getelementby…”的东西时,我的大脑就会说“不!美元符号!美元符号!!!$$$”我想这更像是一场哲学讨论。