好的,我已经查看了有关此问题的所有问题,并且我已经尝试了一些无效的建议,所以我希望有人可以更清楚地了解我的问题。
问题概要:
我在标签框中运行了两个Nivo滑块。我在所有普通浏览器中使用的代码,但有些原因IE7不喜欢我的代码,并且不会注册.click(选择选项卡时的函数(e)。
这是代码:
第1部分 - 这会在第一个标签页上加载页面加载时的滑块库:
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider();
});
</script>
第2部分 - 这是一个IE7有问题。这适用于其他选项卡,因此在单击选项卡之前不会加载库。出于某种原因,IE7不喜欢这样:
<script type="text/javascript">
$(document).ready(function(){
$('#gallery3-link').click(function(e){
$('#gallery1').nivoSlider();
return false;
});
});
</script>
这就是我所做的事情:
我尝试过使用$(“#ClickMe”)。live('click',function()不能和$(“body”)一样工作。委托(“p”,“点击” “,function()这是我看到人们用来在IE7中工作的两个主要解决方案。当我调试时,我还设置了一个警告,以确保IE注册了点击功能:
$('#target').click(function() {
alert('Handler for .click() called.');
});
这没有效果。当您单击选项卡时,它没有警告哪个确认了单击功能不起作用。我已经花了很长时间来寻找解决方案,并且从资源中解脱出来。我认为它可能与代码有关,或者其他一些工作 - 我引用的大多数网站都来自大约2006年或2007年。不是说JS已经改变了那么多,但我希望也许有人在过去4中找到了一个更简单的解决方案年。
任何帮助都将不胜感激。
d
答案 0 :(得分:1)
如果没有看到您实际使用的内容,可能会尝试使用preventDefault()
代替return false;
<script type="text/javascript">
$(document).ready(function(){
$('#gallery3-link').click(function(e){
e.preventDefault();
$('#gallery1').nivoSlider();
});
});
</script>
答案 1 :(得分:0)
我猜这是一个错误,这导致了问题。页面上有错误吗?您是否尝试过设置单击功能的简单警报('test')?如果是这样,它有效吗?
编辑:
在我进行搜索时,我所看到的其他内容是使用IETester的人,它在常规的IE7和IE8中运行良好。你使用的是IE7的真实版本吗?
答案 2 :(得分:0)
我找到的最佳解决方案是使用以下命令在页面加载时加载所有图库:
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider();
});
</script>
它确实为页面加载时间增加了一些时间 - 大约多1/2秒,但它解决了IE7中的问题。
感谢大家的帮助。
d
答案 3 :(得分:0)
我刚遇到同样的错误,这里没有其他答案令人满意。我用
解决了这个问题$('body').click(function() { ... });