javascript - 为什么 canvas 不能与 jQuery 选择器一起使用?

标签 javascript jquery canvas

我制作了使用 Canvas 的简单示例,然后我发现当我使用 jQuery 选择器时我的代码不起作用。

示例:

Javascript

    window.onload = function() {
        var canvas = document.getElementById('myCanvas');
        var ctx = canvas.getContext('2d');

        ctx.fillRect(10,50,100,200);
    };

JQuery

   window.onload = function() {
        var canvas = $('#myCanvas');
        var ctx = canvas.getContext('2d');

        ctx.fillRect(10,50,100,200);
    };

所以我不知道为什么会发生这种情况。有什么限制吗?

最佳答案

检查 jQuery fiddle 的更新版本:http://jsfiddle.net/techfoobar/46VKa/3/

问题是:

var canvas = $('#myCanvas') 为您提供一个 jQuery 扩展对象,而不是具有 getContext 等成员函数的 native DOM 元素对象。为此,您需要获取 Canvas 使用 var canvas = $('#myCanvas')[0]

的元素

注意: var canvas = document.getElementById('myCanvas'); 相当于 var canvas = $('#myCanvas')[0]

关于javascript - 为什么 canvas 不能与 jQuery 选择器一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574038/

相关文章:

javascript - 将 URL 中倒数第二个 "/"字符替换为 '#'

移动设备中的 JavaScript 错误

javascript - Flash 是否正在成为一种垂死的网络技术? (长期)

javascript - 用于 Web 应用程序的 Canvas 与 CSS3

javascript - 如何使用 jCanvas 动画获取当前旋转 Angular ?

javascript - PHP 回显使用 PHP 变量的 JavaScript 警报的正确格式是什么?

javascript - 如何隐藏 HTML5 视频上的播放按钮覆盖

javascript - 使用 Rx.js 解决多个 Promise,有更好的方法吗?

jquery:在嵌套元素中找到parent()*n?

javascript - 使用 JavaScript 对象调用另一个文件中的 JavaScript 函数