用toggle显示hide的jQuery问题

时间:2013-12-04 12:56:37

标签: javascript jquery

我创建了自定义切换脚本来显示/隐藏内容,但我遇到了脚本问题。

当我单击以过滤文本内容时,将显示,当我再次单击关闭按钮时,它将关闭并重新打开。为什么会发生这种情况我不知道请有人指导我。

我的JSCode:

$(".rmm2-toggled").click(function () {
    $(".rmm2-toggled ul").show(1000);
});

$("#filter_close").click(function () {
    $(".rmm2-toggled ul").hide(1000);
});

我的JSFiddle:Sample

4 个答案:

答案 0 :(得分:4)

点击正在冒泡,因此两个事件处理程序都会被执行 你需要停止传播

$(".rmm2-toggled").click(function () {
    $(".rmm2-toggled ul").show(1000);
});

$("#filter_close").click(function (e) {
    e.stopPropagation();    
    $(".rmm2-toggled ul").hide(1000);
});

FIDDLE

答案 1 :(得分:1)

嘿问题是你的关闭按钮在你的切换事件中

使用此js代码:

$(".rmm2-toggled .rmm2-toggled-title").click(function (e) {
  $(".rmm2-toggled ul").show(1000);
});

$("#filter_close").click(function (e) {
  $(".rmm2-toggled ul").hide(1000);
});

答案 2 :(得分:0)

可能的解决方案是试试这个:

$(".rmm2-toggled").click(function () {
   $(".rmm2-toggled ul").show(1000, function(){
          $("#filter_close").click(function () {
            $(".rmm2-toggled ul").hide(1000);
          });
   });
});

答案 3 :(得分:0)

覆盖

<div class="rmm2-toggled-title" >Click to Filter</div>

用这个

<div class="rmm2-toggled-title" id="open_filter">Click to Filter</div>

只需添加名为“open_filter”的 ID ,这将是唯一的,并且关闭按钮不在此div内。

而是将事件添加到父div,将click事件添加到其子项

更新了Jquery

$("#open_filter").click(function () {
    $(".rmm2-toggled ul").show(1000);
});

$("#filter_close").click(function () {
    $(".rmm2-toggled ul").hide(1000);
});
相关问题