function charCount(){
  $.doTimeout('poll', 150, function(){
      messageVal = $('#messageLabel textarea').val();

      messageLength = messageVal.length; //IE BREAKS HERE

      $('#messageLength').html(messageLength + '/140')
      if(messageLength > 140){
          $('#messageLength').not('.inv').addClass('inv')
      }else{
          $('#messageLength.inv').removeClass('inv')
      }
      return false;
  })

}
$('#messageLabel textarea').change(charCount).keyup(charCount);

在Internet Explorer 7.0(可能还有其他版本)中给出以下错误。



关于什么原因导致此错误的任何想法?

最佳答案

当您不使用var关键字时,IE浏览器会在全局上下文中搜索messageLength并找到它...您拥有具有该ID的元素。

尝试为HTML元素分配数字失败。

要解决此问题,只需将messageLength声明为局部变量:

var messageLength = messageVal.length; //IE WON'T BREAK HERE

09-27 22:19