好的,我已经看过了所有关于这方面的问题,我已经尝试了几个建议,但都没有用,所以我希望有人能更多地阐明我的问题。
问题概述:
我在一个选项卡框中运行两个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(‘ClickMe’,function(),它没有像$("body").delegate("p","click",function() )那样工作,这是我看到人们在IE7中使用的两个主要解决方案。当我在调试的时候,我也设置了一个警告,以确保IE注册了点击功能:
$('#target').click(function() {
alert('Handler for .click() called.');
});这没有效果。当你点击标签时,它不会发出警报,确认点击功能不起作用。我已经花了相当长的时间来寻找解决这个问题的方法,但是我的资源已经耗尽了。我想这可能是代码上的问题,或者是一些其他的工作--我引用的大多数站点都来自于2006或2007年左右。并不是说JS改变了太多,但我希望在过去的4年里,也许有人找到了一个更简单的解决方案。
任何帮助都将不胜感激。
D
发布于 2011-08-26 04:52:37
在不了解实际操作的情况下,您可能可以尝试使用preventDefault()而不是return false;
<script type="text/javascript">
$(document).ready(function(){
$('#gallery3-link').click(function(e){
e.preventDefault();
$('#gallery1').nivoSlider();
});
});
</script>发布于 2011-08-26 04:50:12
我猜这是之前的一个错误,是导致问题的原因。页面上是否有任何错误?你有没有试过在设置了点击功能的地方放置一个简单的警告(‘test’)?如果是这样,它能工作吗?
编辑:
从我搜索时参考的其他东西来看,这个人正在使用IETester,它在常规的IE7和IE8中工作得很好。您使用的是真正版本的IE7吗?
发布于 2011-08-30 03:42:48
我找到的最好的解决方案是在页面加载时简单地加载所有的图库:
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider();
});
</script>它确实增加了一些页面加载时间--只多了大约1/2秒,但它解决了IE7中的问题。
感谢大家在这方面的帮助。
D
https://stackoverflow.com/questions/7196953
复制相似问题