jQuery 3.1.1 slideToggle()/ toggle()出现故障

时间:2017-03-21 06:33:01

标签: javascript jquery html css

我阅读了很多关于jQuery toggle / slideToggle的文章,但似乎没有人回答我的问题,所以这是我的问题:

我正在使用jQuery版本3.1.1。,我的slideToggle()(包括所有其他与切换相关的事件)似乎不起作用(请参阅下面的代码)。当我点击“.register-parent”时,“。sign-up-parent-form”(也是“注册表”类的一部分)滑出,然后立即滑回“隐藏”模式。
这是否发生是因为我需要在括号中包括速度,回调等?我使用代码编辑器,它说我的代码没有任何问题。

/*global $ */
$(document).ready(function () {
  "use strict";
  $(".sign-up-form").hide();

  $(".register-parent").click(function () {
    $(".sign-up-parent-form").slideToggle();
  });
});

我的HTML和CSS是here。非常感谢!

2 个答案:

答案 0 :(得分:2)

您的DOM中有2 .register-parent'个元素,因此该事件会附加到此特定类两次。这就是为什么当你点击一次时,两个事件都会被触发。

更具体地附加事件,或者使用像@Super User提到的stopPropagation

答案 1 :(得分:1)

您可以使用stopPropagation进行此操作,您可以使用以下代码更新JS代码:

/*global $ */
$(document).ready(function () {
    "use strict";
    $(".sign-up-form").hide();

    $(".register-parent").click(function (e) {
        e.stopPropagation();
        $(".sign-up-parent-form").slideToggle();
    });
});

更新小提琴演示click here