onchangeイベントについてIEとFFでの表現と解決方法


最近作ったプロジェクトの中で、このような機能点があります。ページにはcheckboxがあります。ユーザーが選択またはキャンセルすると、そのcheckboxを楽屋に送ってください。その時の実現はこのcheckboxのために一つのonchangeイベントを追加したのですが、その結果は予想外でした。そのために、私は深く研究してみました。
問題①:FFの下で、checkboxの選択状態を変えると、すぐにonchangeイベントが発生します。ただし、IEでチェックボックスの選択状態を変更した場合は、すぐにオンチャンジイベントに出発するのではなく、checboxがフォーカスを失うのを待つ必要がある場合にのみ出発します。
この問題を解決するために、私はcheckのonclickイベントにthis.blurという言葉を追加しました。これはonclick事件がonchangeイベントの前に実行されたため、Onclickイベントにthis.blur()を追加して、chockboxに焦点を失うとすぐにonchangeイベントに出発します。しかし、このようにして、また第二の問題に出会いました。
問題②:onclickイベントとthis.blurが同時に使用される場合、IEの下でエラーが発生します。
インターネットでいくつかの資料を調べて、やっとonpropertychangeという事件を発見しました。このイベントはFFでは触発されません。IEの下で、checkboxの選択状態が変わったらすぐ出発します。そこで、最終的な解決策が得られた。IEの下で、checkboxがonpropertychangeイベントと結びつけるために、FFの下で、そのバインディングonchangeイベント。
具体的なコードは以下の通り実現されます。