1

チェックボックスをチェックするためのこのスクリプトがあります。FirefoxとGoogleChromeでうまく機能しますが、IE9では機能しません。

    $notifyBySmsCheckbox
  .change(function(){
    if (this.checked) {console.log('checked');
      $('#f_notify_by_sms_instructions, #f_notify_by_sms_pin, #cellphoneInfo').show();
    }
    else {console.log('not checked');
      $('#f_notify_by_sms_instructions, #f_notify_by_sms_pin, #cellphoneInfo').hide();
    }
  })
  .change();

なぜこれなのか誰もが知っていますか?

4

3 に答える 3

5

..IEにコンソールオブジェクトがないことが原因である可能性があります。console.logを削除してみてください。大丈夫です!

于 2012-08-20T14:52:11.803 に答える
3

console定義されている場合にのみアクセスします。

  $notifyBySmsCheckbox.change(function() {   
    if (this.checked) {
      console && console.log('checked');
      $('#f_notify_by_sms_instructions, #f_notify_by_sms_pin, #cellphoneInfo').show();
    } else {
      console && console.log('not checked');
      $('#f_notify_by_sms_instructions, #f_notify_by_sms_pin, #cellphoneInfo').hide();
    }
  })

toggleまた、 @epascarello で提案されているように、コードを簡素化するために使用できます。

  $notifyBySmsCheckbox.change(function() {
    console && console.log(this.checked ? "checked" : "not checked");
    $('#f_notify_by_sms_instructions, #f_notify_by_sms_pin, #cellphoneInfo').toggle(this.checked);
  });
于 2012-08-20T14:59:34.980 に答える
1

...開発ツールを開いている場合は機能します。そうでない場合は機能しません。つまり、8と7をサポートする必要がありますか?-もしそうなら、これらのonchangeイベントで問題が発生します。代わりにonClickを使用してください。

于 2012-08-20T14:54:10.410 に答える