我正在尝试以编程方式确定是否触发了元素的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
始终为空。答案 0 :(得分:0)
关于你问题的第一点。请注意,如果单击处理程序不会内联(在html代码中)或使用someelement.onclick = function() {...}
注册,您将无法访问处理程序。在您的情况下,您使用的是onClick
属性,然后请求onclick
(小写),这可能就是为什么它为空。