0

为什么我的 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;
    });
4

1 回答 1

3

selfwindow对象的一个​​属性,在某些版本的IE中是只读的。

最简单的解决方案是重命名变量(尤其是在全局变量的情况下),或者在某些情况下self通过使用var.

于 2013-11-09T17:02:19.180 回答