Javascript JQuery没有';I don’我有时不工作

Javascript JQuery没有';I don’我有时不工作,javascript,jquery,internet-explorer,load,Javascript,Jquery,Internet Explorer,Load,我在一个网站上工作,这个网站上有一些jquery滑块,还有一些其他功能。然而,IE中每隔几页跳转一次(就我所见的IE而言),jquery就不会加载,从而破坏页面。IE中有时不会加载的部分来自jquery.cycle.all.js文件。下面是我代码的javascript部分 <script type="text/javascript" src="javascript/modernizr.js"></script> <script type="text/javascri

我在一个网站上工作,这个网站上有一些jquery滑块,还有一些其他功能。然而,IE中每隔几页跳转一次(就我所见的IE而言),jquery就不会加载,从而破坏页面。IE中有时不会加载的部分来自jquery.cycle.all.js文件。下面是我代码的javascript部分

<script type="text/javascript" src="javascript/modernizr.js"></script>
<script type="text/javascript" src="javascript/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="javascript/jquery.cycle.all.js"></script>

<script type="text/javascript">

$(document).ready(function() {

    if (!Modernizr.input.placeholder) {
        $('input[placeholder], textarea[placeholder]').each(function(index, elem) {
            elem = $(elem);
            placeholder = elem.attr('placeholder');
            elem_id = elem.attr('id');
            elem_name = elem.attr('name');

            clone = elem.clone();
            clone.hide();

            if (elem_id) {
                clone.attr({'id': elem_id+'-fake'});
            }
            if (elem_name) {
                clone.attr({'name': elem_name+'-fake'});
            }
            clone.addClass('fake');
            clone.data({'original': $(elem)});
            clone.val(placeholder);

            clone.focus(function(e) {
                e.preventDefault();
                $(this).hide();
                $(this).data('original').show().focus();
            });
            elem.blur(function() {
                if ($(this).val() == '') {
                    $(this).hide();
                    $(this).next().show();
                }
            });

            elem.after(clone);
            elem.blur();
        });
    }

    $('#image-slider').cycle({
        speed: 1000,
        timeout: 1000
    });

    $('#text-slider').cycle({
        speed: 1000,
        timeout: 10000
    });

    $('#ad-1').cycle({
        speed: 1000,
        timeout: 1000
    });

    $('#ad-2').cycle({
        speed: 1000,
        timeout: 1000
    });

    $('#gallery-slider').cycle({
        speed: 2000,
        timeout: 2500
    });
});

function PopupCenter(pageURL, title, w, h) {
    var left = (screen.width/2)-(w/2);
    var top = (screen.height/2)-(h/2);
    var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no,   width='+w+', height='+h+', top='+top+', left='+left);
} 

</script>

$(文档).ready(函数(){
if(!modernizer.input.placeholder){
$('input[placeholder],textarea[placeholder]')。每个(函数(索引,元素){
elem=$(elem);
占位符=元素属性(“占位符”);
elem_id=elem.attr('id');
元素名称=元素属性(“名称”);
clone=elem.clone();
clone.hide();
如果(元素id){
attr({'id':elem_id+'-fake'});
}
如果(元素名称){
attr({'name':elem_name+'-fake'});
}
clone.addClass('false');
clone.data({'original':$(elem)});
clone.val(占位符);
clone.focus(函数(e){
e、 预防默认值();
$(this.hide();
$(this.data('original').show().focus();
});
元素模糊(函数(){
if($(this.val()=''){
$(this.hide();
$(this.next().show();
}
});
元素后(克隆);
模糊元素();
});
}
$(“#图像滑块”)。循环({
速度:1000,
超时:1000
});
$(“#文本滑块”)。循环({
速度:1000,
超时:10000
});
$('#ad-1')。循环({
速度:1000,
超时:1000
});
$('#ad-2')。周期({
速度:1000,
超时:1000
});
$(“#图库滑块”)。循环({
速度:2000,
超时:2500
});
});
函数PopupCenter(页面URL、标题、w、h){
左侧变量=(屏幕宽度/2)-(w/2);
变量顶部=(屏幕高度/2)-(高度/2);
var targetWin=window.open(页面URL,标题,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizeable=no,copyhistory=no,宽度='+w+',高度='+h+',顶部='+top+',左侧='+left);
} 

就我所见,占位符和#图像滑块部件每次都能工作。#文本滑块、#ad-1和#ad-2仅在IE中偶尔出现故障。请有人告诉我,我遗漏了什么,我在这里大发雷霆。当我在Chrome中打开您的示例页面时,可以在此处找到指向该站点的链接

[周期]终止;选择器找到零元素

也许你的问题不在JS中,而在你的标记中。可能您还没有关闭某些div或定义了空的元素集。另外,页面在Chrome中也不起作用


编辑:是的,我认为问题在于你的标记。在您的FAQ页面上,IE只是简单地打断,但在您的页脚中显示4张图片,而Chorme没有显示任何内容。如果我转到Chrome开发者工具,我会看到它正在为你的页脚中的某些元素设置动画。

看看这个例子,并尽我所能不去责怪Internet Explorer,我可以给你一些建议

首先,我认为您遇到的问题不在jQuery或IE中(尽管大多数问题都在IE中),而是在您的“循环”插件中。如果您的目标是旋转木马效果,我建议您查看Twitter的Bootstrap@

在那里,您将发现一组令人惊叹的样式和脚本,允许您使用基本标记设置滑块。下面是一个使用引导的示例

标记看起来就像这样:

<!-- The carousel container -->
<div id="slider" class="carousel slide">
    <!-- The carousel -->
    <div class="carousel-inner">
        <div class="active item">
            <!-- Here you can put the image itself, as well as a custom element to hold a caption -->
            <img src="/path/to/image.png" alt="Image Not Found" title="Bootstrap Rocks!" />
            <div class="carousel-caption">
                  <h4>The Title</h4>
                  <p>Some text.</p>
                </div>
        </div>
        <div class="active item">
            <img src="/path/to/image.png" alt="Image Not Found" title="Bootstrap Rocks!" />
        </div>
        <div class="active item">
            <img src="/path/to/image.png" alt="Image Not Found" title="Bootstrap Rocks!" />
        </div>
        </div>
    <!-- The anchors to move through the carousel -->
    <a class="carousel-control left" href="#slider" data-slide="prev">&lsaquo;</a>
    <a class="carousel-control right" href="#slider" data-slide="next">&rsaquo;</a>
</div>

标题
一些文本

最好的部分是,您不必为它编写任何脚本。您可以按原样使用它,只是标记将自动初始化

几点提示

我只是觉得我应该给你一些提示,因为你的目标是使你的网站支持internet explorer

当网站能够运行时,即使Internet Explorer的一切都很糟糕,最好使用一些小工具和工具来优化你的网站。您不再需要进行切换/案例来优化您的站点

当您使用HTML5元素时,请尝试包含“HTML5Shiv@”。对于CSS3,我正在写“CSS3Shiv@”,但要到一月份才能出来


不管怎样,浏览并检查您使用的插件是否能够自我优化是一个好主意,如果不能,我真的建议您寻找其他插件。

对不起,您使用的是什么版本的Chrome?我们看到chrome绝对没有问题?您看到的开发工具的哪一部分是“选择器找到的零元素”?编辑:页面已经过验证,所以我99%确定这不是标记错误。我使用的是Chrome v.21。当你打开Chrome->Console时,你会看到你的错误。好的,这很有意义。我有5个循环元素(图像滑块、文本滑块、ad-1、ad-2和图库滑块)。在主页上,只有4个出现。因此,它终止了寻找最后一个的尝试,因为它们不存在。感谢您将我指向控制台。在IE中,它通常显示您发布的内容。然而,随机地,我得到这个输出<代码>日志:[循环]终止;幻灯片太少:1个日志:[循环]终止;选择器日志找到零元素:[循环]终止;选择器日志找到零元素:[循环]终止;选择器日志找到零元素:[循环]终止;选择器找到的零元素