1

我有这个用于检查复选框的脚本,它在 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();

有谁知道这是为什么??

4

3 回答 3

5

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

于 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

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

于 2012-08-20T14:54:10.410 回答