Javascript 使用jquery的2d画布
与html5问题相比,这更像是一个jquery问题,但这是一个很好的例子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">
<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…”的东西时,我的大脑就会说“不!美元符号!美元符号!!!$$$”我想这更像是一场哲学讨论。