0

ここに示すように、この「onclickoutシミュレーター」スクリプトを複製しようとしています:

http://jsfiddle.net/C9CL3/

ご覧のとおり、正常に動作します (私がテストしたすべてのブラウザーで、私が知る限り、これはブラウザーの互換性の問題ではありません)。

私のソリューションのコードは次のようになります。

document.getElementById('bigBtn').onclick = function(event) {
        alert('button clicked');
        if (event.cancelBubble) //THIS LINE GIVES 'EVENT IS UNDEFINED' ERROR
            event.cancelBubble = true;
        else
            event.stopPropagation();
    }

これは pageLoad() にあります。

ご覧のとおり、イベントが未定義であるため、event.cancelBubble 行から予期しないエラーが発生しています。私は一生、理由を解明することはできません。

注: ブラウザーの互換性の理由から、fiddle デモとは異なる方法で cancelBubble をテストしています。

助けてくれてありがとう、本当にこれに固執しました。

4

2 に答える 2

2

DOM2イベントモデルを使用してみてください。代わりに、次のアプローチを使用してハンドラーを登録します。

document.getElementById('bigBtn').addEventListener("click", yourFunction, false);
于 2012-04-27T11:09:53.333 に答える
0

問題が解決しました。このようにonclickoutイベントを「シミュレート」する代わりに、(window.hashを使用して)その「ボタンクリック」アラートの代わりに表示されるメニューにフォーカスを設定し、onblurイベントを処理して閉じました。

于 2012-04-27T12:45:03.340 に答える