这是我第一次在这里发帖提问,因为我通常会尝试自己找到解决方案。但是,这个问题只是一个IE问题,只会让我发疯。
我在我制作的网站上使用jQuery循环插件,为了填充标题 div,我使用了一个在加载图像后调用的小函数,它使用图像的“alt”属性。这似乎激怒了Internet Explorer,它没有时间来完成这个看似如此复杂的任务,并且,随着幻灯片循环,它进入无限循环并最终崩溃 - 版本越新,崩溃越严重:较旧的IE只显示错误消息,指出“无法显示网页”,而较新的(7和8)则完全导致系统崩溃。
我不知道如何解决或解决这个问题。这是有问题的代码。
function changeCaption() {
var caption = $("img", this).attr("alt");
$('#caption').fadeIn("slow").html(caption);
}
提前感谢任何指针:我很惊讶,如此简单和全球认可的东西(没有遇到任何其他浏览器有问题),可能会导致问题如此之大。我还读到了能够远程崩溃浏览器的地方是一个严重的问题:)
答案 0 :(得分:1)
<div id="slideShow_container">
<!-- Place your slideshow stuff here -->
<img id="myImage" alt="crap" .../>
</div>
然后使用以下选择图像:
var s = $("#slideShow_container");
var caption = $("img", s).eq(0).attr("alt"); //selects first matched image
OR
var captions = [];
$("img", s).each(function(){
captions.push($(this).attr("alt")); //array of captions
})
OR
var caption = $("#myImg", s),attr("alt"); //has to work for an explicit id
答案 1 :(得分:0)
我怀疑$(“img”,这个)失败了。 'img'选择器不是问题。然而,“这个”背景可能没有明确定义。上下文的目的是缩小搜索空间范围以提供更好的jQuery性能。 context参数必须是DOM元素,文档或jQuery元素。我建议如下:
<div id="slideShow">
<!-- put your slide show here -->
</div>
然后使用以下选项来选择图像:
var slideShow = $("#slideShow");
var caption = $("img", slideShow);
如果这不起作用,请尝试在代码中添加一些警报(或使用firebug控制台)。例如,在标题语句放入警报(标题)之后。这将帮助您确定失败的位置。
答案 2 :(得分:-1)
我不熟悉循环插件,但似乎你可以试试这个
function changeCaption() {
$('#caption').fadeIn("slow").html(this.getElementsByTagName('img')[0].alt);
}
假设这个
中只包含一个img,它应该可以正常工作