为了账号安全,请及时绑定邮箱和手机立即绑定

btn1将btn的事件覆盖掉了 应该怎么解决

btn1将btn的事件覆盖掉了 应该怎么解决

慕粉2308161447 2017-03-31 15:35:36
<html><head>  <title>  </title><style></style></head><body>  <canvas id='canvas'width="1100"  height="630">    <div>    </div>  </canvas><script>var c=document.getElementById("canvas");var ctx=c.getContext("2d");ctx.border=" 1px solid #aaa";ctx.shadowBlur=20;ctx.fillStyle="#F0FFF0";ctx.shadowColor="green";ctx.fillRect(20,20,1000,600);ctx.fillStyle="yellow";function Button1(){  var c=document.getElementById("canvas");  var ctx=c.getContext("2d");  ctx.save();  ctx.beginPath();  ctx.fillRect(750,560,60,40);  ctx.font="25px Arial";  ctx.fillStyle="#000000 "//字体颜色  ctx.fillText("隐藏",755,590);//要填充的字及位置  ctx.closePath();}function Button(){   var c=document.getElementById("canvas");   var ctx=c.getContext("2d");   ctx.save();   ctx.beginPath();   ctx.fillRect(150,560,60,40);   ctx.font="25px Arial";   ctx.fillStyle="#000000 "//字体颜色   ctx.fillText("显示",155,590);//要填充的字及位置   ctx.fillStyle="yellow";   ctx.closePath();}window.onload=function(){   btn=new Button();   btn.on("click",show);  var show=function(){    alert("显示");  }  btn1=new Button1();  btn1.on("click",hide);  var hide=function(){    alert("yincang");  }}Button.prototype.on=function(events,fn){    var c=document.getElementById("canvas");    var ctx=c.getContext("2d");     c.onclick=function(e){      e=e||event;      var x=e.offsetX;      var y=e.offsetY;      if(x>=150&&x<=210&&y>=560&&y<=600){         //btn.addEventListener(events,fn);         alert("你hao");        }      }    }Button1.prototype.on=function(events,fn){    var q=document.getElementById("canvas");    var ctx=q.getContext("2d");     q.onclick=function(e){       e=e||event;      var x=e.offsetX;      var y=e.offsetY;      if(x>=750&&x<=810&&y>=560&&y<=600){        //btn.addEventListener(events,fn);        alert("你好");        }      }    }</script></body></html>
查看完整描述

1 回答

已采纳
?
ruibin

TA贡献358条经验 获得超213个赞

你可以把c.onclick=function(e){  改成c.addEventListener('click', function() { 然后就可以了。因为onclick只支持一个,addEventListener可以支持多个。

查看完整回答
1 反对 回复 2017-04-01
  • 慕粉2308161447
    慕粉2308161447
    谢谢啦 再问你一个问题啊 如果我想点击矩形能触发show()或者hide,应该怎么写
  • 1 回答
  • 0 关注
  • 1236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信