- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个问题,正如标题所说,我不明白为什么toggleClass()不起作用,相反,如果我使用removeClass()或addClass()一切正常。
$('div').on('click', '.fa-exclamation-circle', function(){
var target = $(this).parent().find('p');
target.toggleClass("hidden");
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="flex justify-center items-center w-full mb-10 relative">
<i class="fas fa-unlock w-1/12"></i>
<input class="transparence-input w-3/4 radius p-1 px-10 relative" type="password" name="password" value="" placeholder="Password" data-parsley-required="true" data-parsley-trigger="focus keyup" data-parsley-required-message="Campo obbligatorio">
<div class="error-field-icon flex hidden">
<i class="fas fa-exclamation-circle text-red-800"></i>
<p class="div-error px-1 absolute text-white lg:text-sm radius h-auto hidden"></p>
</div>
</div>
最佳答案
问题是因为您使用 div
作为委托(delegate)事件处理程序的主选择器,并且 DOM 中存在多个嵌套的 div
元素。因此,click
处理程序针对单击的 .fa-exclamation-circle
元素的每个父 div 运行一次。由于示例中有两个,第一次调用 toggleClass()
会删除该类,第二次调用会再次添加该类。
要解决此问题,请使主选择器更加具体,以便仅选择一个父 div:
$('div.items-center').on('click', '.fa-exclamation-circle', function() {
var target = $(this).parent().find('p');
target.toggleClass("hidden");
});
.hidden { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="flex justify-center items-center w-full mb-10 relative">
<i class="fas fa-unlock w-1/12"></i>
<input class="transparence-input w-3/4 radius p-1 px-10 relative" type="password" name="password" value="" placeholder="Password" data-parsley-required="true" data-parsley-trigger="focus keyup" data-parsley-required-message="Campo obbligatorio">
<div class="error-field-icon flex">
<i class="fas fa-exclamation-circle text-red-800">Click me</i>
<p class="div-error px-1 absolute text-white lg:text-sm radius h-auto hidden">Foo bar!</p>
</div>
</div>
关于javascript - toggleClass 函数在此函数中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61346014/
这是我真正想要发生的事情: 页面加载时先显示div当用户单击“向上箭头”时,箭头切换为“向下箭头”并隐藏 div。当用户单击“向下箭头”时,将显示该 div。 但是,虽然我确实让页面在加载页面时正确显
我在获取toggleClass的缓动属性时遇到问题上类。我已经在这个网站和其他网站上进行了搜索,但仍然无法让它按预期工作。类切换得很好,但不能顺利地缓入或缓出。 这是我的代码示例:DEMO 以下是我在
我有一些我想要的li,当我将鼠标悬停在每个li上时,仅针对每个下摆而不是全部切换类。 现在,当我将鼠标悬停在每个 li 上时,所有 LI 都会获得切换的类。这是 HTML 和 jQuery Fa
您好,我有一些名为 archbar2 的 div,我想使用 .each 循环更改它,但我在 javascript 方面没有任何反应。之前一切正常,因为警报效果很好。为什么我的类(class)没有改变?
我正在尝试设置一个视频库,当我将鼠标悬停在视频缩略图上时,我希望播放按钮从不透明度:.3 更改为不透明度:1。我试图通过使用带有toggleClass() 的jQuery 脚本来实现此目的。我尝试过使
我有两个容器,每个容器都有自己的标题和箭头图标来指示可以进行切换的方向。 加载时,容器 1 打开并带有向上箭头图标(表示内容可以折叠)。加载时,容器 2 用向下图标关闭(表示内容可以展开)。 当我单击
我之前曾问过类似的问题,其答案部分解决了我的问题。 但是现在我需要扩展代码。 当只有两个 div 时,此代码会切换 div 的可见性,但是当添加第三个 div 时,当我想单独显示每组 div 时,它会
我正在使用一些非常简单的 .toggleClass() 和 1 秒的动画。除了动画之外,一切正常。我觉得这真的很有趣。 看看我的fiddle ! $(function(){ $('#main_but
通过单击按钮,div 通过 css 属性更改其位置。但是,我希望 div 幻灯片能够从一个位置动画到另一个位置。 注意:#window 必须具有 width:100%; 和 height:100%;,
我是 jQuery 的新手,我在 Stack 上搜索过类似的问题,但没有找到这个特定的(而且我确信很常见)问题。 我有一个具有默认类别的项目列表。我想使用toggleClass 添加翻转效果。问题是所
我有这个问题,正如标题所说,我不明白为什么toggleClass()不起作用,相反,如果我使用removeClass()或addClass()一切正常。 $('div').on('click', '.
我想要toggle a class基于某些条件我必须根据已处理元素的 ID 计算: $(".centre li").toggleClass("highlight", someFunction(x));
我在使用 jQuery 的 toggleClass() 和 CSS 来显示和隐藏表单的搜索表单上进行简单的显示/隐藏。这很简单,比如: $('#site-search-toggle').click(f
大家好,我有这个代码 panelPlusK.append('click To change the style'); $('#foo').click(function() { $('.agar
我在 jQuery 中遇到了 toggleClass 的问题。 代码如下: $(".guzik").click(function() { $("#third").toggleClass('.p
所以我遇到的问题很简单。我有一个跨度 Show More使用此元素,我正在扩展一个部分以显示更多文本。 我遇到的问题是我想在页面的其他部分使用此功能。 这是我用来激活 toggleClass 的 jq
我让我的链接看起来像标签,这实际上是一个过滤器。这是有问题的部分: Review
所以基本上我想做的是在单击复选框时创建一个简单的 toggleClass,但问题是它删除了该类,但没有添加回该类。 这是一个示例代码: $('#task-checkbox').click(functi
我的页面上有 4 个 div 和一个按钮。如果您单击一个 div,它会切换类。 单击按钮时,我希望所有已突出显示的 div 保持突出显示状态,但我不希望在单击按钮后有更多的 div 切换类。 有办法吗
所以我得到了一些导航,其中包含 float 在传统 anchor 旁边的表单复选框。如果未选中相应的复选框,我想添加一个类(基本上将设置样式以使 anchor 标记变暗)。系统地执行此操作的最佳方法是
我是一名优秀的程序员,十分优秀!