脚本在IE 9中不起作用

script not working in IE 9

本文关键字:不起作用 IE 脚本      更新时间:2023-09-26

我有这个检查复选框的脚本,它在firefox和google chrome中运行良好,但在IE 9 中不起作用

    $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();

有人知道为什么会这样吗??

。。这很可能是因为IE没有控制台对象。试着删除控制台.log,你会没事的!

只有在定义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);
  });

。。。如果你在ie中打开了开发工具,它就会工作,否则就不会了。你必须支持ie8和7吗?-如果是这样的话,您将在这些事件中遇到onchange事件的问题。请改用onClick。