【发布时间】:2016-11-30 06:31:54
【问题描述】:
我很难找到任何有助于解决此问题的信息。我在这里尝试了其他几个对其他人有用的选项,但它似乎不起作用。
我有一个这样的 div 设置:
<div class="dynamic-content">
<div class="button"></div>
<div class="content"></div>
</div>
我要做的是在单击 .button 时将 CSS 动画应用于 .dynamic-content ,方法是添加特定类,然后通过再次单击 .button 并删除特定类来删除该动画。
这是我的 jQuery:
$(".button").on('click', function() {
if ($(".dynamic-content").hasClass('open')) {
$(".dynamic-content").removeClass('open'));
} else {
$(".dynamic-content").addClass('open'));
}
}
如果我不包含 .removeClass() 部分,则 addClass 可以完美运行。但是,只要我在检查器中放入 .removeClass,我就可以看到 .dynamic-content 亮起,好像被 JS 瞄准并采取了行动一样,但是什么也没发生,甚至 .addClass 也没有工作。
【问题讨论】:
-
怎么调试的???因为您发布的代码中有明显的错字所以?!
-
嘿,感谢您指出这一点!我认为这是我在这里重新输入代码的问题。但是,我确实仔细检查了我的代码,以确保我没有任何额外的大括号。
-
其他问题可能是因为您有
.button嵌套元素,因此每次点击都会触发两次事件处理程序。或者您有任何其他单击处理程序绑定到再次切换此类的任何父级。如果添加:$(".button").on('click', function(e) { e.stopPropagation(); /* rest of code*/ }); -
嘿 A. Wolff,事实证明,我忽略了我两次调用我的 .js 文件的事实。一旦我解决了这个问题,我的问题最终解决了。不过,感谢您的意见!
标签: javascript jquery css