IE8中未定义类

时间:2014-09-29 17:34:22

标签: javascript jquery css internet-explorer-8

我愚蠢地决定在我的最新项目中支持IE8,这无疑会成为我生命中最愚蠢的想法。

因此,我遇到的最基本问题是我的主类变量未定义。我的意思是我在general.js文件中设置了一个原型,看起来有点像这样:

var generalClass;

// jQuery Object
var $ = jQuery; 

$(document).ready(function() {

    // A general class for a general file.
    generalClass = function() {

    }

    generalClass.prototype = {

    }


    new generalClass();     


});

所以generalClass变量用我的原型/等填充。然后我把它包含在我的文档的头部,稍后我调用了generalClass中的一个函数来做其他事情,有点像这样:

<script type="text/javascript" src="general.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $.ajax({
        type: 'POST', 
        url: ..., 
        data: {

        }, 
        success : function(data) {
            // CALL MY FUNCTION:    
            generalClass.prototype.myFunction();

        }


    }
});
</script>

在每个浏览器中,从IE9到Chrome都可以。在IE8中,这不起作用,并且generalClass未定义。为什么这样对我?

1 个答案:

答案 0 :(得分:3)

我不确定你在哪里学习这种模式,但它应该更像是这样:

var generalClass;

// jQuery Object
//var $ = jQuery;  <-- makes no sense $ should be jQuery already

$(document).ready(function() {

    function GeneralClass() {}
    GeneralClass.prototype = {
        myFunction: function () {
            alert("x");
        }
    };

    generalClass = new GeneralClass();

});

当你打电话时

generalClass.myFunction();