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

发布于 2024-10-31 11:24:24 字数 295 浏览 4 评论 0原文

我天真的做法如下:

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

我还能做更好的事情吗?

My naive approach is the following:

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

Is there anything better I can do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街角卖回忆 2024-11-07 11:24:24

对于大多数元素...

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

}

For most elements...

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

 // clickable

}

For anchors...

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

 // clickable

}

Then you have form buttons which require a little more code, and finally you have click-event bubbling to deal with so a perfect solution covering ALL elements would be a nightmare!

However, if you just want something SIMPLE for containers and anchors only, then we can combine the logic above with a...

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

 // clickable

}

For the reverse...

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

 // not clickable

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文