我阅读了很多关于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。非常感谢!
答案 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