我正在开发一个网站上有一些jquery滑块,以及其他一些功能。然而,IE中的每隔几页跳转(以及只有我见过的IE)jquery才会加载,打破页面。不在IE中加载SOMETIMES的部分来自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>
就我所见,占位符和#image-slider部分每次都有效。 #text-slider,#ad-1和#ad-2仅在IE中失败。有人请告诉我,我错过了什么,我在这里撕裂我的头发。可在此处找到该网站的链接http://memorysquare.com/testSite/
答案 0 :(得分:1)
当我在Chrome中打开您的示例页面时,我得到了
[循环]终止;选择器
找到的零元素
也许你的问题不在JS中,而在你的标记中。也许你还没有关闭一些div或者定义了一组空元素。此外,页面在Chrome中也不起作用。
编辑:是的我认为问题出在您的标记中。在您的常见问题解答页面上,IE只是断开但在您的页脚中显示4张图片,但Chorme没有显示任何内容。如果我使用Chrome开发人员工具,我会看到它会在页脚中设置一些元素。答案 1 :(得分:0)
看一下这个例子,并尽量不要责怪Internet Explorer,我可以为你提出一些建议。
首先,我认为你遇到的问题不是在jQuery或IE中(尽管大多数问题都在IE中),而是在你的'循环'插件中。如果您的目标是旋转木马效果,我建议您查看Twitter的Bootstrap @ http://twitter.github.com/bootstrap
在那里,你会发现一组惊人的样式和脚本,它们允许你使用基本的标记来设置你的滑块。以下是使用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">‹</a>
<a class="carousel-control right" href="#slider" data-slide="next">›</a>
</div>
最重要的是,您不必为其编写任何脚本。您可以按原样使用它,只需标记将自动初始化。
几点提示。
我觉得我应该给你一些提示,因为你的目标是让你的网站支持网络浏览器。
当使用Internet Explorer蹩脚的一切使网站能够运行时,最好使用小的shivs和工具来优化您的网站。您不再需要切换/案例来优化您的网站。
当您使用HTML5元素时,请尝试添加“HTML5Shiv @ http://code.google.com/p/html5shiv/”。而对于CSS3,我正在写'CSS3Shiv @ http://github.com/karimsa/css3shiv',但直到1月才会出现。
无论如何,浏览并检查您使用的插件是否能够自我优化是个好主意,如果没有,我真的建议您寻找其他插件。