要素の 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" />
しかし、私には2つの問題があります:
- 式
elm.exonclick = elm.onclick
は何らかの理由で常に null です。 - 私のカスタム onclick 関数は、そうでない場合でも、両方のケースで起動されます。したがって、どちらの場合も true を返しますが、これは間違っています。