jQuery加载内容在所有IE中失败';s

jQuery加载内容在所有IE中失败';s,jquery,ajax,Jquery,Ajax,我是ajax方面的新手,所以这是我第一个使用jQueryLoad()的项目 我做了这个循序渐进的指导,似乎很容易。结果:与Webkit和Gecko一起工作,但是IE 7+8,真令人惊讶,它们没有加载任何内容。nettuts的演示是在IE中实现的,那么我到底做错了什么 守则: // Check for hash value in URL var hash = window.location.hash.substr(1); // load content var href = $(".mainNa

我是ajax方面的新手,所以这是我第一个使用jQueryLoad()的项目

我做了这个循序渐进的指导,似乎很容易。结果:与Webkit和Gecko一起工作,但是IE 7+8,真令人惊讶,它们没有加载任何内容。nettuts的演示是在IE中实现的,那么我到底做错了什么

守则:

// Check for hash value in URL
var hash = window.location.hash.substr(1);

// load content
var href = $(".mainNav li a").each(function() {
    var href = $(this).attr('href');
    if (hash == href.substr(0,href.length-5)) {
        var toLoad = hash + ".html #content";
        $("#content").load(toLoad)
    }
});

$(".mainNav li a").click(function(){
    var toLoad = $(this).attr('href') + "#ajaxedContent";

    $("#content").fadeOut(300,loadContent, function(){
        dynHeights();                                               
    });

    $("#load").remove();
    $('#logo').append('<div id="load"></div>');
    $("#load").fadeIn(100);

    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);

    function loadContent() {
        $("#content").load(toLoad,'',showNewContent())
    }

    function showNewContent() {
        $("#content").fadeIn(300, function() { 
            dynHeights();
            hideLoader();
        });
    }

    function hideLoader() {
        $("#load").fadeOut(300);
    }

    return false;
});
//检查URL中的哈希值
var hash=window.location.hash.substr(1);
//装载量
var href=$(“.mainNav li a”).each(函数(){
var href=$(this.attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad=hash+“.html#content”;
$(“#内容”).load(toLoad)
}
});
$(“.mainNav li a”)。单击(函数(){
var-toLoad=$(this.attr('href')+“#ajaxedContent”;
$(“#内容”).fadeOut(300,loadContent,function(){
dynHeights();
});
$(“#加载”).remove();
$(“#徽标”)。附加(“”);
$(“#加载”).fadeIn(100);
window.location.hash=$(this.attr('href').substr(0,$(this.attr('href').length-5);
函数loadContent(){
$(“#内容”).load(toLoad,”,showNewContent())
}
函数showNewContent(){
$(“#内容”).fadeIn(300,function(){
dynHeights();
hideLoader();
});
}
函数hideLoader(){
$(“#加载”)。淡出(300);
}
返回false;
});
注意:dynHeights()有助于更改阴影边界的高度,不应成为问题的一部分

有什么想法吗?将不胜感激

// load content
var href = $(".mainNav li a").each(function() {
    var href = $(this).attr('href');
    if (hash == href.substr(0,href.length-5)) {
        var toLoad = hash + ".html #content";
        $("#content").load(toLoad)
    }
});
上述情况毫无意义。对于“.mainNav”中的每个“li a”,您将加载一些远程站点,并将其放置在“#content”中。如果您在“.mainNav”中有4个锚,您将发出4个AJAX请求,但只显示最后一个完成的请求(它甚至不能保证是最后一个li…这是一个竞赛条件)

可能您希望在
单击事件上执行此操作(在这种情况下,将“each”更改为“click”),或者只希望在特定元素上执行此操作;在这种情况下,使用选择器(例如,或)对其进行限制


var-toLoad=hash+”.html#content“
”将起作用,但不会使用您期望的行为

假设hash是一个值,例如“”,那么您将得到
toLoad
等于:

"http://www.google.co.uk.html #content"
第一部分是无效的URL,它永远不会工作。第二部分是响应将放置在其中的jQuery选择器

您可能在使用
var toLoad=hash+”.html#content“
(注意添加了空格),但是“#content”在页面上应该是唯一的,因为ID不应该重复,因此可以简化为:

var toLoad = hash + " #content";

var-toLoad=$(this).attr('href')+“#ajaxedContent”
与以前的错误相同,可能应该是
var-toLoad=$(this).attr('href')+“#ajaxedContent”


上述操作无法按预期工作。对load的调用提供了3个参数:

  • 可变负载
  • 空白字符串
  • showNewContent()的结果(未定义),而不是您所期望的函数showNewContent
  • 可能是:

        function loadContent() {
            $("#content").load(toLoad,'',showNewContent)
        }
    
    修复这些错误将有望解决IE的问题

    上面的说法毫无意义。对于“.mainNav”中的每个“LIA”,您都在加载一些远程站点,并将其放置在“#content”中。如果“.mainNav”中有4个锚,您将发出4个AJAX请求,但只显示最后一个完成的请求(甚至不能保证是最后一个li…这是一个竞争条件)

    可能您希望在
    单击事件上执行此操作(在这种情况下,将“each”更改为“click”),或者只希望在特定元素上执行此操作;在这种情况下,使用选择器(例如,或)对其进行限制


    var-toLoad=hash+”.html#content“
    ”将起作用,但不会使用您期望的行为

    假设hash是一个值,例如“”,那么您将得到
    toLoad
    等于:

    "http://www.google.co.uk.html #content"
    
    第一部分是无效的URL,它永远不会工作。第二部分是响应将放置在其中的jQuery选择器

    您可能在使用
    var toLoad=hash+”.html#content“
    (注意添加了空格),但是“#content”在页面上应该是唯一的,因为ID不应该重复,因此可以简化为:

    var toLoad = hash + " #content";
    

    var-toLoad=$(this).attr('href')+“#ajaxedContent”
    与以前的错误相同,可能应该是
    var-toLoad=$(this).attr('href')+“#ajaxedContent”


    上述操作无法按预期工作。对load的调用提供了3个参数:

  • 可变负载
  • 空白字符串
  • showNewContent()的结果(未定义),而不是您所期望的函数showNewContent
  • 可能是:

        function loadContent() {
            $("#content").load(toLoad,'',showNewContent)
        }
    

    修复这些错误将有望解决您在IE上遇到的问题。

    这太棒了,它很有效!现在我看到了错误,但没有感觉,但我不敢相信这样的脚本是作为教程发布的。非常感谢您的努力!这太棒了,它很有效!现在我看到了错误,没有感觉,但我不能相信伊芙是这样一个脚本是作为一个教程发布的。非常感谢你的努力!