事件的JavaScript引用,由addEventListener()声明
我正在尝试实现一个Web应用程序,它应该允许您在像素网格上绘制形状。为此,我需要向网格的每个表元素添加几个事件侦听器。 这就是我目前所做的:事件的JavaScript引用,由addEventListener()声明,javascript,events,dom,Javascript,Events,Dom,我正在尝试实现一个Web应用程序,它应该允许您在像素网格上绘制形状。为此,我需要向网格的每个表元素添加几个事件侦听器。 这就是我目前所做的: td.addEventListener("click", setpixel); td.addEventListener("mousedown", function () { mousedown = true; }) td.addEventListener("mouseup", function () { mousedown = false;
td.addEventListener("click", setpixel);
td.addEventListener("mousedown", function () {
mousedown = true;
})
td.addEventListener("mouseup", function () {
mousedown = false;
})
td.addEventListener("mousemove", function () {
if (mousedown) {
setpixel(?);
}
});
setPixel函数需要一个作为参数传递的事件:
function setpixel(event) {
var oldColor = this.style.backgroundColor;
var currentColor=document.getElementById("current-color").style.backgroundColor;
if (brushwidth > 1 && brushwidth < 4) {
brushpixel(this.id, offset, currentColor);
}
else if (brushwidth == 4) {
document.body.style.cursor = "url('https://www.wired.com/wp-content/uploads/images_blogs/design/2013/04/Susan-Kare-fill-icon-660x660.jpg')";
floodfill(this.id, currentColor, oldColor);
preview();
}
else {
this.style.backgroundColor = currentColor;
}
preview();
}
否则它就不能正常工作。
从何处获取引用的事件
链接线程在这里对我不起作用,不确定原因,但我已经尝试过了。将事件添加到侦听函数参数中
td.addEventListener("mousemove", function (e) {
if (mousedown) {
setpixel(e);
}
});
将click事件注册到表中,并创建一个函数将专门处理的条件。使用e.target确定实际单击了哪个。请在上阅读这篇文章。在编辑之前开始此答案,因此不知道新添加的内容 演示 //参比片 var T=document.querySelector'T'; /*在T上注册click事件 ||setPixel是回调函数 */ T.addEventListenerclick,setPixel; 函数集像素{ /*e.target是单击的元素 ||如果单击的元素是。。。 */ var tgt=e.target; 如果tgt.tagName==TD{ /*…如果td没有红色指示灯 ||背景,然后把它变成红色 */ 如果tgt.style.background!=“红色”{ e、 target.style.background='red'; }否则{ /*否则就把它变成黑色*/ e、 target.style.background='black'; } } } T{ 宽度:90% } 桌子 运输署{ 边框:2个实心番茄; 光标:指针; 背景:黑色; }
我已经试过了。setpixel函数将抛出:在计算传递的事件时,undefined不是一个对象Post您的setpixel函数也是如此,那么您在setpixel函数中尝试使用此函数访问什么?此引用调用函数setpixel的DOM元素。您在setpixel中计算事件的位置没有引用导致我相信这不是错误所在