JavaScript设置指针事件

xoefb8l8  于 5个月前  发布在  Java
关注(0)|答案(4)|浏览(63)

我试图通过JavaScript为div设置pointer-events: none,但该属性未被应用。
我试过:

document.getElementById("div").setAttribute("pointer-events", "none");

字符串
还有:

document.getElementById("div").style.pointer-events = "none";


但都不管用,有什么想法吗?

yiytaume

yiytaume1#

第一次尝试失败,因为它是一个CSS属性,而不是一个属性(style属性的一部分)。
你的第二次尝试失败了,因为出于某种原因,在制作这个API时,casing-like-this被转换为camelCasingLikeThis。这很可能是因为构建JavaScript的人和构建CSS的人没有很好地协调。
应采取以下措施:

document.getElementById("div").style.pointerEvents = "none";

字符串

kiz8lqtg

kiz8lqtg2#

你可以通过如下方式使用样式表示法来访问样式属性:

document.getElementById("div").style['pointer-events'] = 'auto';

字符串
在这种情况下,不需要修改camel case。

kqhtkvqz

kqhtkvqz3#

book中有一个example,它使用element.setAttributeNS(null, "pointer-events", "none");而不是element.style.pointer-events = "none";

xsuvu9jc

xsuvu9jc4#

我也遇到过同样的问题,但我想我已经解决了...
在第一个代码中,它会是,

document.getElementById("div").setAttribute("style", "pointer-events: none;");

字符串
在这里你可以看到,我已经添加了HTML属性“style”作为第一个参数,然后在第二个参数中传递了CSS属性沿着它的值。
在第二个代码中,它会是,

document.getElementById("div").style.pointerEvents = "none";


在这里,你只需要使用camelCase而不是kebab-case。
这两种方法都是正确的,而且都有效...

相关问题