关于两个元素的jQuery onclick事件

时间:2015-03-15 12:40:06

标签: jquery

我在更换彼此顶部的两个元素上的onclick事件时遇到了麻烦。

请参阅:http://jsfiddle.net/qkarq2s4/

我的代码:

$(document).ready(function(){

  $("div.list").click(function() {

    $("div.list").not(this).slideUp();
    $("div.showall").hide().delay(200).fadeIn(200);
    $("div.list" ).off( "click");

    $("div.showall").click(function() {
        $("div.list").show(200);
        $("div.showall").hide();
    });

  });
});

1)Onclick仅显示所选的div + [show all]链接
2)点击[show all]显示所有div

这有效,但只有一次(您必须重新加载页面,或单击在jsFiddle中运行) http://jsfiddle.net/qkarq2s4/

1 个答案:

答案 0 :(得分:0)

看看这个小提琴:http://jsfiddle.net/qkarq2s4/1/

我已经修好了。您的代码第二次无效的问题是您取消设置 div.list 的点击次数 删除它可以解决问题,我们还需要为 div.showall 添加 stopPropagation ,以便不向父div发送点击事件。

这是工作代码:

$("div.list").click(function() {

    $("div.list").not(this).slideUp();
    $("div.showall").hide().delay(200).fadeIn(200);

    $("div.showall").click(function(e) {
        e.stopPropagation();
        $("div.list").show(200);
        $("div.showall").hide();
    });

});