我正在尝试以编程方式确定元素的 onClick 事件是否被触发。例如,如果元素被禁用,则事件不应触发。这就是我想出的:
function check(elm) {
elm.exonclick = elm.onclick;
var clicked = false;
elm.onclick = function(oEvent) {
clicked = true;
if (elm.exonclick) elm.exonclick(oEvent);
};
elm.click();
elm.onclick = elm.exonclick;
elm.exonclick = undefined;
return clicked;
}
所以在这种情况下,函数应该返回 true:
<a onClick="foo(); bar();" />
在这种情况下,它应该返回 false:
<a onClick="foo(); bar();" disabled="disabled" />
但我有两个问题:
- 由于某种原因,表达式
elm.exonclick = elm.onclick
始终为空。 - 我的自定义 onclick 函数在这两种情况下都会触发,即使它不应该触发。因此,这两种情况都返回 true,这是错误的。