【问题标题】:javascript: How to check if an element is clickable or notjavascript:如何检查元素是否可点击
【发布时间】:2011-08-03 16:08:09
【问题描述】:

我的幼稚做法如下:

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

有什么更好的办法吗?

【问题讨论】:

  • 我的意思是,从技术上讲,一切都是可点击的......
  • 你是对的。如果我改写成:“如果我点击它,会发生什么事情吗?”
  • 你想通过确定这个来完成什么?
  • 实际上 Firefox 需要一个讨厌的脚本才能以编程方式单击一些 html 元素
  • 我的目标是测试 - 在我执行一些操作后,元素是否变得可点击(停止可点击)

标签: javascript clickable


【解决方案1】:

对于大多数元素...

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

}

【讨论】:

  • 这很好用,但最重要的是我也添加了这个检查 if(element.getAttribute('role') === "button")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 2015-01-12
  • 2012-07-08
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多