jQuery一直工作,直到我操作另一个脚本?

时间:2012-08-08 07:57:48

标签: jquery css css3 conflict css-transitions

我在

下创建了一个页面

http://isca01.bigwavemedia.info/~staged2b/about/staff

正如您所看到的,工作人员之间的过滤器可以正常工作,但是当您切换到新的员工组时,翻转弹出窗口不起作用。

这些是头脑中的两个脚本,但是我有一些css使得带有类悬停的图像在翻转时弹出。

我一直试图解决这个问题,我们将非常感谢任何帮助。

最基本的问候 布伦特法语

1 个答案:

答案 0 :(得分:1)

$(function() {
    $(".imgHover").hover(
        function() {
            $(this).children("img").fadeTo(200, 0.85).end().children(".hover").show();
        },
        function() {
            $(this).children("img").fadeTo(200, 1).end().children(".hover").hide();
        });
})(jQuery);

这是问题所在。将上述内容更改为:

$(function() {
    $(".imgHover")
        .live('mouseenter', function() {
            $(this).children("img").fadeTo(200, 0.85).end().children(".hover").show();
        })
        .live('mouseleave', function() {
            $(this).children("img").fadeTo(200, 1).end().children(".hover").hide();
        });
})(jQuery);

更改人员组时,您正在取消绑定该功能。使用.live()将保持事件绑定。理想情况下,您将使用.delegate(),但这仅适用于更高版本的jQuery

更多信息:

  1. Bind
  2. Live
  3. Delegate
  4. 修改

    注意到.delegate()实际上存在于1.4.2中;我以为它会在以后出现。我建议您从.live()更改为.delegate(),因为您可以将事件侦听器附加到父元素(未被其他脚本更改的元素)。检查文档链接(上方)以了解语法更改