使用JavaScript在所有控件上禁用点击事件

Ima*_*mad 3 javascript

我想使用纯JavaScript(由于应用程序架构)来禁用html页面上的click事件。

我试过了

document.body.addEventListener("click", function (evt) { evt.preventDefault(); });
Run Code Online (Sandbox Code Playgroud)

但它仍然打开我的选择。

select仅用作示例,我想针对每个控件执行此操作。

这是小提琴

更新 无法使用,pointer-events:none;因为我在WPF应用程序内部使用了它,遗憾的是它使用了令人沮丧的浏览器(称为)IE

Sra*_*van 8

添加简单的 css, pointer-events: none,如果将其提供给 body 元素,则 evty click 将被禁用。

<html>
<body  style="pointer-events: none">
<select> 
  <option>a</option>
  <option>b</option> 
</select>
 </body>
  </html>
Run Code Online (Sandbox Code Playgroud)

请运行代码片段

 <select style="pointer-events: none"> 
  <option>a</option>
  <option>b</option> 
</select> 
Run Code Online (Sandbox Code Playgroud)

这是小提琴

为 IE 编辑:

 <select style="pointer-events: none"> 
  <option>a</option>
  <option>b</option> 
</select> 
Run Code Online (Sandbox Code Playgroud)
document.addEventListener("click",handler,true);

function handler(e){
    e.stopPropagation();
    e.preventDefault();
}

function cancelDropDown(ev) {
  ev.preventDefault();
}

var showMenu = document.getElementsByClassName("selectElement");

// ...

for ( var i = 0; i < showMenu.length; ++i ) {
    showMenu[i].addEventListener("mousedown", cancelDropDown, false);
} 
Run Code Online (Sandbox Code Playgroud)

小提琴 2


Ris*_*abh 8

您可以通过CSS轻松实现

<select style="pointer-events:none;"> 
   <option>a</option>
   <option>b</option> 
<select>
Run Code Online (Sandbox Code Playgroud)