麻烦在IE中拍摄JavaScript函数

时间:2010-03-23 19:31:56

标签: javascript jquery function

所以这个功能在geko和webkit浏览器中运行良好,但不适用于IE7。我试图发现问题已经破坏了我的大脑。什么东西都适合你?

基本前提是你传入一个数据对象(在这种情况下是来自jQuery的$ .getJSON的响应)我们检查响应代码,设置通知的类,附加一个图层并将其显示给用户。然后在时间限制后反转该过程。

function userNotice(data){
    // change class based on error code returned
    var myClass = '';
    if(data.code == 200){ myClass='success'; }
    else if(data.code == 400){ myClass='error'; }
    else{ myClass='notice'; }
    // create message html, add to DOM, FadeIn
    var myNotice = '<div id="notice" class="ajaxMsg '+myClass+'">'+data.msg+'</div>';
    $("body").append(myNotice);
    $("#notice").fadeIn('fast');
    // fadeout and remove from DOM after delay
    var t = setTimeout(function(){ $("#notice").fadeOut('slow',function(){ $(this).remove(); }); },5000);
}

2 个答案:

答案 0 :(得分:0)

我建议您查看服务器返回的JSON输出。当.getJSON()未按预期调用回调函数时,通常是因为服务器返回的JSON在某处被破坏。

答案 1 :(得分:0)

此代码在IE8中工作(没有IE7,但也尝试在compat模式下)使用存根数据

var d = {code:200, msg:'lorem ipsum'}
userNotice(d);

所以我认为你应该检查从服务器获得的JSON。它是否包含您使用的所有密钥? 哦!检查你从服务器获得的类似dict / json的内容:{key_one: 'value', key_two: 'value',}。注意最后一个逗号 - 这可能是IE中的一个问题。