jQuery CLICK事件未触发(切换到悬停时,它确实有效)

前端之家收集整理的这篇文章主要介绍了jQuery CLICK事件未触发(切换到悬停时,它确实有效)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个jQuery代码我用点击功能编写.

代码必须与jQuery 1.7.2一起使用.

我在这里设置了一个jsfiddle:http://jsfiddle.net/7MpTa/1/

$(document).ready(
function () {
    $(".balloons a").hover(
        function() {
            $(this).next('.popups').addClass("shown");
        },function() {
            $(this).next('.popups').removeClass("shown");
        }
    );
}

);

当我将点击功能切换为悬停时,它可以正常工作.只是点击功能本身不起作用.我试过改变它来绑定和生活,但没有成功.

这是悬停工作的演示:http://jsfiddle.net/8HL8k/1/

任何人都知道它为什么不起作用?

编辑
谢谢大家的回答.他们显然都很棒.但是,当在网站上实现这些更改时,事件根本就没有被触发(在FF,IE7,Chrome,Opera,Safari上测试).在类(气球和弹出窗口)的任何地方绝对没有其他参考,所以我不确定什么可能导致干扰.由于严格的NDA政策,我无法将链接发布到网站.这些都在无序列表(ul)中.它可能是由这种HTML语法引起的吗?如果是这样,有办法解决吗?因为它必须保留在内部,因为代码用于整个站点的数百个幻灯片.

我也尝试让锚点在点击时发出警报,看它是否会触发它,它也没有触发它.

是否应该在头部内部或之后的jQuery 1.7.2引用之前,或者在文档的完整底部,在标记之前调用编写的脚本?

解决方法

您可以使用toggle()而不是click():
$(".balloons a").toggle(
    function() {
        $(this).next('.popups').addClass("shown");
    },function() {
        $(this).next('.popups').removeClass("shown");
    }
);

正如你在这里看到的:http://jsfiddle.net/darkajax/tmzt7/

但是请记住,toggle()从jQuery 1.8开始被弃用,并在1.9中被删除,但由于你使用的是1.7.2,它应该可以正常工作……

但是,更好的解决方案是使用toggleClass():

$(".balloons a").click(
    function() {
        $(this).next('.popups').toggleClass("shown");
    }
);

正如你在这里看到的:http://jsfiddle.net/darkajax/GeSmx/

编辑:回答你的第二个问题/问题的一部分,jQuery引用应该在所有使用它的方法/函数之前…

猜你在找的jQuery相关文章