- ベストアンサー
JavaScriptでonclickを無効化する方法
- JavaScriptのonclickイベントを無効にする方法を教えてください。
- 下記のコードでonclickイベントキャンセルを行っていますが、うまく動作しません。
- 環境はWindows2000(SP4)とIE6(SP1)です。何かヒントはありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
event.returnValue = false についてはNo1様がすでにご指摘の通りです。 ご質問は、ドキュメントレベルででイベントを取得してキャンセルしたいという意図でしょうか? バブリングの伝播順だと要素のonclickイベントが発生してからドキュメントへ伝播するので、仮にキャンセルが可能だったとしても無理ということになります。 http://wiki.bit-hive.com/tomizoo/pg/JavaScript%20addEventListener%28%29 fx系であれば、documentでキャプチャリングフェーズでイベントを取得して、stopPropagation()で伝播を停止することで、ご質問で意図しているようなことは可能ですが、IEはこの仕組みに対応していないようです。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/dom/org/w3c/dom/events/Event.html#stopPropagation() IE9からはできるのかも知れません。(ちゃんと調べてませんけど) http://msdn.microsoft.com/en-us/library/ff975245(v=VS.85).aspx IE6の場合だと、最初に要素をサーチしてonclickが設定されていたらキャンセルするとかの方法でもよいのなら可能でしょう。(atachEventで設定されているものは拾えませんが) というか、HTMLソースを直接書き替えると言う単純な方法ではダメなのでしょうか?
その他の回答 (2)
- fujillin
- ベストアンサー率61% (1594/2576)
No2です。 >やりたい事は、2重クリックの場合は、無効にしたいことでした 1度しか実行したくないということでしょうか? (↓)が参考になるかも http://okwave.jp/qa/q6578859.html
お礼
fujillinさん コメントありがとうございます 参考にしてみます
- 0909union
- ベストアンサー率39% (325/818)
>onclickイベントキャンセル 意味取り違えています。キャンセルしています。この場合デフォルトとは、Aタグの機能でhrefに指定されているファイルへ飛ぶ事です。 http://msdn.microsoft.com/ja-jp/library/cc392242.aspx あたりが参考になるのでは、優先順位はエレメントの設定です。 なお、ブラウザの種類によっても微妙です。
お礼
0909unionさん コメントありがとうございます
お礼
fujillinさん コメントありがとうございます やりたい事は、2重クリックの場合は、無効にしたいことでした。 そこで、実際は、documenreadyState=complete以外は、イベントをキャンセルすことのにより対応するつもりでした。 そこで、それぞれのonclickに書くのが面倒なので、一括で書けないかと思い上記のような事を考えました。