为什么我的jQuery脚本只有在IE9 64Bit上运行时才会出现以下错误?整个网站适用于所有其他浏览器。这是唯一抛出此错误的浏览器。
我在1.7.2中的jQuery版本
错误是:
SCRIPT5002: Function expected
jq.js, line 430 character 6
这是第430行第6期
$('#'+type).insertAfter(self.parent()).show();
+type
实际上是'success'
success
是隐藏的div,存储在页面的末尾,并移动到父级。
<div id="success">Your message was sent</div>
我的代码
$('.msg').click(function() {
self = $(this);
var type = $(this).data('type');
if(type) {
// ajax call
$.ajax({
type:"GET",
url:"/msgr/",
data:data,
dataType: 'json',
beforeSend:function(html){
},
success: function(callBack){
$('#'+type).insertAfter(self.parent()).show();
}
},
error: function(page_data){
},
});
}
return false;
});
答案 0 :(得分:3)
self
是window
对象的属性,在某些版本的IE中是只读的。
最简单的解决方案是重命名变量(特别是在全局变量的情况下),或者某些情况通过使用self
声明它来限制var
在特定函数范围内的使用。