javascript:如何检查元素是否可点击

2023-11-26

我天真的方法如下:

function isClickable(id){     
     elem = document.getElementById(id);
     if (elem.nodeName.toLowerCase() == 'a' || typeof(elem.click) != 'undefined'){
        return true;     
     }else{
        return false;     
     }
}    

我还能做些什么更好的事情吗?


对于大多数元素...

if(e.getAttribute('onclick')!=null){

 // clickable

}

对于锚...

if(e.getAttribute('href')!=null){

 // clickable

}

然后你有需要更多代码的表单按钮,最后你有点击事件冒泡来处理,所以覆盖所有元素的完美解决方案将是一场噩梦!

但是,如果您只想要简单的容器和锚点,那么我们可以将上面的逻辑与......

if((e.getAttribute('onclick')!=null)||(e.getAttribute('href')!=null)){

 // clickable

}

对于相反...

if((e.getAttribute('onclick')===null)&&(e.getAttribute('href')===null)){

 // not clickable

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript:如何检查元素是否可点击 的相关文章

  • Javascript:如何检查异步操作是否仍在挂起/正在进行中?

    我想知道是否可以以某种方式检查 Javascript 中的异步操作是否仍处于待处理状态 因为我正在执行调用特定 URL 的数据库请求 虽然 db 调用仍在进行中 但我想停止任何其他传入的 db 调用 这意味着 停止对该 URL 的任何进一步
  • 为什么 `obj.foo = function() { };` 没有将名称 `foo` 分配给函数?

    从 ES2015 ES6 开始 函数有了专有名称 包括官方名称 name属性 而函数创建时的赋值除了明显的函数声明和命名函数表达式之外还有多种方式 比如给变量赋值 函数的名字设置为变量的名字 给对象属性赋值 函数的名称设置为属性的名称 甚至
  • 在 Meteor.method 中调用函数返回未定义

    过去几天我一直在尝试从 Meteor 方法获取返回对象 每次我这样做我都会得到undefined在客户端上 Meteor methods CORSTest function let url www theverge com 2017 4 1
  • 使用 javascript 调用 ViewComponent

    我有一个带有几个视图组件的网页 当我单击这些组件时 我会为其打开一个简单的编辑器 请参见下图 如果我编辑文本并按 Enter 键 我想重新渲染视图组件而不是孔页面 是否可以使用 javascript 调用视图组件来获得此行为 通过更新 您现
  • 如何制作像Stackoverflow一样的可折叠评论框

    我正在构建一个网站 并且有一个状态更新列表 我希望允许用户为列表中的每个项目撰写评论 但是我正在尝试实现一个类似于堆栈溢出工作方式的用户界面 特别是可折叠的评论表单 列表 用户在其中单击对列表中的特定状态更新添加评论 并且在列表中的该项目下
  • 通过 HTML5 文件和 URL API 正确创建和提供 PDF Blob

    好吧 假设我有文档数据存储在某处 让我们任意取this pdf http www grida no climate ipcc tar wg1 pdf tar 01 pdf 问题 1 我想要做的是对此 URL 进行 AJAX 调用 因为我需要
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • 为什么我的 onclick 事件自动触发

    加载页面时最初显示 Hello World 我希望它仅在单击按钮后显示 我知道我可以通过向按钮添加内联事件侦听器来做到这一点 我可以只用脚本编写所有这些代码吗
  • Angular-Datatables + Angular-xeditable:取消可编辑行

    当组合 Angular DataTables 和 Angular XEditable 时 添加新行时会取消可编辑行 这是jsfiddle https jsfiddle net faj61h5d 10 示例操作如下 1 这是初始状态 2 将第
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • 如何检查jquery数据表中的每个复选框?

    我有一个第一列带有复选框的表格 我使用 jQuery DataTable 插件显示我的表格 我制作了 2 个链接来选择 取消选择每个复选框 这是选择全部的一个 a href Select all a 和 JavaScript functio
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • 地址更改时如何停止 Angular 重新加载

    我正在使用 Angular 的scrollTo and anchorScroll像这样 app controller TestCtrl function scope location anchorScroll scope scrollTo
  • 如何在 jQuery 中检查复选框是否被选中?

    我需要检查checked复选框的属性 并使用 jQuery 根据选中的属性执行操作 例如 如果age复选框被选中 然后我需要显示一个文本框来输入age 否则隐藏文本框 但下面的代码返回false默认情况下 if isAgeSelected
  • jQuery fadeOut 一个 div,fadeIn 另一个 div 在其位置

    我正在尝试一个简单的 jQuery 脚本来淡出一个 div 并淡入另一个 div 但由于某种原因 第一个 div 永远不会淡出 这可能是代码的一个明显问题 但我似乎无法弄清楚 div div div div
  • 我可以防止将 Leaflet 地图平移到世界边缘之外吗?

    有没有办法限制平移到世界边缘之外 在这幅画中 棕色是世界 灰色是虚空 我想让它不可能像这样平移 Leaflet 允许您控制地图抵抗被拖出边界的程度maxBoundsViscosity选项 值 0 到 1 将其设置为最大值会完全禁用拖动出界

随机推荐

  • 运行 docker 容器的 docker 内部的气流

    我在 EC2 实例上运行气流 并且正在安排一些启动 Docker 容器的任务 我怎么做 我需要在气流容器上安装 docker 吗 以及下一步是什么 我有一个用于启动容器的 yaml 文件 它源自 puckel airflow Docker
  • iOS 12 中新 iOS 13 系统颜色的回退行为

    我目前正在采用深色模式 我认为使用新的系统颜色 例如systemBackground and label也在界面生成器中正常工作在 iOS 12 中运行该应用程序时 我本以为会出现编译器错误 但该应用程序看起来就像在 iOS 13 轻量模式
  • 从同一向量中推回一个元素是否安全?

    vector
  • 解析类似电子邮件的标头(类似于 RFC822)

    问题 问题 有一个机器人信息数据库我想解析一下 据说是类似于 RFC822 消息 在我重新发明轮子并编写自己的解析器之前 我想我应该看看是否还有其他可用的东西 我偶然发现imap rfc822 parse headers 这似乎正是我想要的
  • 在 Varnish 4 中重试期间更改后端

    我希望能够在 Varnish 4 中重试时更改后端 我们已经使用 Varnish 3 在不同的 较旧的 应用程序上进行了此操作 但我无法弄清楚 v4 的情况 也无法弄清楚找到很多文档 我们想要的设置是有 2 组控制器 一组用于初始请求 尝试
  • 类型错误:对象不支持此属性或方法

    我创建了 Rails 应用程序 在其中创建了数据库 空 当我尝试查看我的产品页面时 我收到以下错误http localhost 3000 产品页 在迁移数据库之前 应用程序可以正常运行 我正在使用 therubyracer 并且使用的是 W
  • 不同域上的 ASP.NET Core CookieAuthenticationOptions.LoginPath

    我在用着CookieAuthenticationOptions在我的 NET Core 应用程序中配置身份验证 但我的登录页面位于不同的域中 但是 那LoginPath属性只允许内部路径 而不是完整的 URI 所以下面的代码 var coo
  • VBA Windows 7 样式按钮

    我很确定这个问题在网络上被问了很多 并且我在几个论坛上阅读了很多问题及其 答案 但我从未见过明确的答案 所以我想知道 可以使用 Windows 7 风格的按钮 在 Excel VBA 中还是我必须使用这些看起来像来自的灰色东西 I dont
  • 哪些 Google GWT 产品使用 UiBinder? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想知道google的哪个
  • Rust 中的 const 除以泛型

    我有一个结构Vec3
  • 应用程序未在 Visual Studio 2015 中的 Android Visual Studio 模拟器中运行

    当我调试此项目时 我创建空白的 xamarin android 项目 没有添加任何代码 调试没有问题 但是当我使用 Visual Studio 模拟器运行应用程序时 android 模拟器正在运行 但没有启动我的应用程序 部署失败 并且不显
  • nginx + uwsgi + Flask - 禁用自定义错误页面

    是否可以禁用 nginx 的自定义错误页面 如果我可以这样称呼它们 来显示我的框架的异常页面 我真的看不到我的 werkzeug 调试器工具在 html 中呈现 UPDATE 好的 我必须制作一个非常非常简单的烧瓶应用程序才能工作 我将发布
  • 不允许后台执行。 Android O 待定意图

    我有一项服务可以安排一个启动通知的待定 意图 但是 自从 Android O 我收到此错误 我做了一些研究 偶然发现context registerReceiver 但这似乎并不能解决问题 Error W BroadcastQueue Ba
  • applicationDidFinishLaunching 未调用,使用 Storyboards 和 swift3

    The applicationDidFinishLaunching当我运行我的应用程序时没有被调用 这是我的代码AppDelegate class NSApplicationMain class AppDelegate NSObject N
  • 二叉搜索树中的删除

    我得到了两个二叉搜索树 例如A和B 接下来 要求我从A树中删除B树 我所说的删除是指从 A 中删除 B 中存在的所有节点 注意 B不一定是A的子树 eg A 50 10 75 1 60 90 B 10 1 75 结果树应该是 50 60 9
  • python 使用 Pyyaml 并保持格式

    这是一个配置文件 我使用 PyYAML 更改其中的一些值 然后编写一些配置 但它会更改我的格式 这让我感到困惑 results yaml nas mount dir nvr mount dirs mount data0 mount data
  • Angular ASP.NET MVC 绑定

    在我们的 MVC 5 项目中 我们使用 Angular 下面的 Razor 效果很好 Html EditorFor x gt x FirstName new required required ng model FirstName 然而 如
  • 类型错误:“numpy.float64”对象不支持项目分配

    def classify self texts vectors self dictionary feature vectors texts predictions self svm decision function vectors pre
  • 将 Angular 2 应用程序转变为移动应用程序

    我们有一个使用 AngularJS 2 开发的响应式 Web 应用程序 我们希望将其包装在一个包中 以将其作为移动应用程序重新分发 Android 是我们的首要任务 我们已经研究了科尔多瓦 是否有其他选项可用于将网络应用程序转变为移动应用程
  • javascript:如何检查元素是否可点击

    我天真的方法如下 function isClickable id elem document getElementById id if elem nodeName toLowerCase a typeof elem click undefi