Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.attr()使Internet Explorer崩溃_Jquery_Internet Explorer_Jquery Plugins_Jquery Selectors - Fatal编程技术网

jQuery.attr()使Internet Explorer崩溃

jQuery.attr()使Internet Explorer崩溃,jquery,internet-explorer,jquery-plugins,jquery-selectors,Jquery,Internet Explorer,Jquery Plugins,Jquery Selectors,这是我第一次在这里发布一个问题,因为我通常会自己尝试找到解决方案。然而,这一次,作为一个IE问题,简直让我发疯 我在自己制作的网站上使用jQuery cycle插件,为了填充标题div,我使用了一个在加载图像后调用的小函数,该函数使用图像的“alt”属性。这似乎激怒了Internet Explorer,它没有时间完成这项显然如此复杂的任务,而且,随着幻灯片的循环,它进入无限循环并最终崩溃——版本越新,崩溃越严重:旧IE只会显示一条错误消息,说“网页无法显示”,而较新版本(7和8)则会使系统完全崩

这是我第一次在这里发布一个问题,因为我通常会自己尝试找到解决方案。然而,这一次,作为一个IE问题,简直让我发疯

我在自己制作的网站上使用jQuery cycle插件,为了填充标题div,我使用了一个在加载图像后调用的小函数,该函数使用图像的“alt”属性。这似乎激怒了Internet Explorer,它没有时间完成这项显然如此复杂的任务,而且,随着幻灯片的循环,它进入无限循环并最终崩溃——版本越新,崩溃越严重:旧IE只会显示一条错误消息,说“网页无法显示”,而较新版本(7和8)则会使系统完全崩溃

我不知道如何解决或解决这个问题。下面是有问题的代码

function changeCaption() {
    var caption = $("img", this).attr("alt");
    $('#caption').fadeIn("slow").html(caption);
}

提前感谢您提供的任何提示:我很惊讶如此简单和全球公认的东西(没有遇到任何其他浏览器对此有问题)会导致如此大的问题。我还在某个地方读到,能够远程使浏览器崩溃是一个严重的问题:)

我不熟悉cycle插件,但似乎你可以试试这个

function changeCaption() {
    $('#caption').fadeIn("slow").html(this.getElementsByTagName('img')[0].alt);
}
假设此

中只包含一个img,它应该可以工作。我怀疑$(“img”,this)失败了。“img”选择器不是问题。然而,“这个”上下文可能没有很好的定义。上下文的目的是缩小搜索空间,以提供更好的jQuery性能。上下文参数必须是DOM元素、文档或jQuery元素。我建议如下:

<div id="slideShow">

    <!-- put your slide show here -->

</div>
如果这不起作用,请尝试在代码中添加一些警报(或使用firebug控制台)。例如,在caption语句的后面插入一个警报(caption)。这将帮助您确定失败的地方

<div id="slideShow_container">
    <!-- Place your slideshow stuff here -->
    <img id="myImage" alt="crap"  .../>
</div>


尝试使用$('#imgId').attr('alt')调用此方法的位置是哪里?看起来调用它的方式会导致淡入淡出动画堆叠/溢出,即@Teja:我无法检查特定图像的属性“alt”,因为该图像在幻灯片上,所以我需要更改它@尼克:你熟悉jQuery循环插件吗?正在从幻灯片的“after:”选项调用该函数。基本上是回拨。
<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
var captions = [];
$("img", s).each(function(){
   captions.push($(this).attr("alt")); //array of captions
})
var caption = $("#myImg", s),attr("alt");  //has to work for an explicit id