0

要素の 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つの問題があります:

  1. elm.exonclick = elm.onclickは何らかの理由で常に null です。
  2. 私のカスタム onclick 関数は、そうでない場合でも、両方のケースで起動されます。したがって、どちらの場合も true を返しますが、これは間違っています。
4

1 に答える 1

0

あなたの質問の最初の点について。クリック ハンドラーがインライン (html コード) または を使用して登録されない場合someelement.onclick = function() {...}、ハンドラーにアクセスできないことに注意してください。あなたの場合、onClick属性を使用していて、 onclick(小文字) を参照している可能性があります。それが null の理由です。

于 2012-12-11T13:00:39.937 に答える