javascript - 如果我使用 jQuery,JavaScript 事件是否有效?

标签 javascript jquery html5-canvas dom-events

我是使用 jQuery 创建应用程序的新手,但我对 Javascript 非常熟悉。好吧,我想做的是使用 Javascript getElementById 来在 html5 canvas 中绘制图像。我的代码是:

包括 jQuery 和 JQuery mobile:

    <link rel="stylesheet" type="text/css" href="lib/jquery.mobile-1.0b1.min.css" />
    <script type="text/javascript" src="lib/jquery-1.6.1.js"></script>  
    <script type="text/javascript" src="lib/jquery.mobile-1.0b1.min.js"></script> 

有问题的代码:

     <div data-role="content">
      <!--//TO DO canvas drawing-->
      <canvas id="draw_area" width="295px" height = "390px"></canvas>
      ...

      <script type="text/javascript">
      var canvas = getElementById("draw_area");
      var context = canvas.getContext('2d');
      var map = new Image();

      map.src = "./imgs/home_screen1.png";
      map.onload = function (){
          context.drawImage (map, 0, 0);
      };
 </script>

我还注意到我无法使用

<body onload = "aFunction();">

不是任何其他 Javascript 事件,例如“onclick”。

我做错了什么吗?

最佳答案

应该是:

var canvas = document.getElementById("draw_area");

您的脚本在加载后立即运行 getElementById 行,该行失败(由于缺少 document.)并阻止其余部分上的脚本您的页面将不再执行。

Here's a quick demo向您展示脚本错误将如何阻止后续行的执行。

一旦解决了这个问题,正如 @swalk 所说,您应该封装该脚本,以便它在 document.ready 上运行保持一切整洁。

关于javascript - 如果我使用 jQuery,JavaScript 事件是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6687334/

相关文章:

javascript - 将年份计数器添加到 flipclock.js

jquery - 在 bootstrap-table 中使用复选框格式化列

javascript - safari 浏览器不支持 ipad/iphone、Android 中的 HTML5 音频标签

javascript - HTML5 动力学.js : Draggable bound just for the canvas size

javascript - 制作旋转动画 : start and end slowly, 但在中间快

javascript - 如何在 Canvas 上同时绘制图像和草图

javascript - Angular Bootstrap 模式 - 复选框未绑定(bind)到 Controller

javascript - 在 html 中强制所有 720 高清的 YouTube 视频播放

javascript - babeljs 类在构造函数中静态

javascript - 使用 CSS 和 JS 设置 SVG 样式