jQuery .click(function()在IE7中不起作用

时间:2011-08-25 20:45:21

标签: javascript jquery html css

好的,我已经查看了有关此问题的所有问题,并且我已经尝试了一些无效的建议,所以我希望有人可以更清楚地了解我的问题。

问题概要:

我在标签框中运行了两个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

4 个答案:

答案 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() { ... });