我愚蠢地决定在我的最新项目中支持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未定义。为什么这样对我?
答案 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();