所以这个功能在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);
}
答案 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中的一个问题。