Code

2014年7月26日土曜日

cross-browser IE8 ボタン クリック問題

 最近仕事が変わりましたので、IE8 も対応ブラウザになりました。。。
 以前から、出て来た IE8 ボタンのクリック問題をまとめておきます。
1 まずは、radio ボタンをクリックしたら、何か動作を自動的に実行する場合、IE8 だと、クリックだけでは onchange イベントハンドラーが呼び出されない。これは、radio ボタンを focus を失うとき、onchange が trigger されます。。。まぁ、理解できますけど。。。
 直し方としては、radio ボタンにもう一個の onclick イベントハンドラーをバインドします。そのイベントハンドラーに
    $("radio button の selector").focus().blur()
を実行します。これで、onchange が自動的に呼ばれるようになります。

2 display:none のボタンの label をクリックしても、ボタンの状態が変わらない。。。
 これは display:none だから。直す方法が二つあります。display:none をやめて、opacity を 0 に設定したり、position を absolute に設定して、top: -9999px, left:-9999px を設定したりすることで、ボタン要素が見えないが、label のクリックは効くようになります。
 もう一つは Label に click ハンドラーをバインドして、もし label が click したら、for attribute で設定したボタンの click 関数を呼び出します。

 それでは。

0 件のコメント:

コメントを投稿