首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用除特定#id之外的每个html DOM元素

禁用除特定#id之外的每个html DOM元素
EN

Stack Overflow用户
提问于 2015-06-10 17:40:09
回答 1查看 48关注 0票数 1

实际上,我试图禁用html页面中的所有元素,但是有一些元素是我想要激活的。

代码语言:javascript
运行
复制
$('body').find('*').attr('onclick',"return false;"); //Disabling all elements
// Trying to make this id("prerequisitedetails") active.
$("#prerequisitedetails").parents().attr('onclick',null).off('click');

有人能告诉我该怎么做吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 17:45:24

有人能告诉我该怎么做吗。

不要使用onclick属性,使用真实的事件处理程序。

这应该可以做到:

代码语言:javascript
运行
复制
$('body')
    .find('*')
    .not($("#prerequisitedetails").parents().addBack())
    .click(false);

这样做的目的是:

  • 查找所有作为body后代的元素
  • 从该集合中移除prerequisitedetails元素或其任何父元素。注意addBack,所以我们包括元素本身。
  • 使用jQuery缩写来表示返回false的单击处理程序。

尽管考虑过这一点,但您是否确信确实希望允许单击元素的父级而不是元素的后代?你可能想:

代码语言:javascript
运行
复制
$('body')
    .find('*')
    .not($("#prerequisitedetails").find("*").addBack())
    .click(false);

这与上面的情况类似,但它保留的“启用”元素是prerequisitedetails元素及其后代。

不过,这有点蛮力。您可能会查找与模态对话框相关的问题和答案,该对话框通常使用一个shim元素来捕获单击,然后使用z-index将您想要的元素“放在”该元素的前面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30763552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档