jquery - csstoggleClass 无法正常工作

标签 jquery html css transition

祝大家有美好的一天

我想在单击其中一张图像时立即切换类别。单击后,我想向该 div 添加一个名为 expand 的类,以给它一些过渡效果。所以这是我的问题。首先点击确定。第二次单击,expand 类不会消失。这是我的一些文件。

任何帮助将不胜感激。谢谢。

index.html

<div class="box1">
  <div class="content">
    <img src="img/some.png" />
  </div>
</div>

一些.js

$(function () {
  $("img").on("click", function() {
    var box = $(this).first().parents().eq(1).attr("class");
    $("."+box).toggleClass("expand");
  });
});

一些.css

.box1 {
  width: 50%;
  height: 50%;
  float: left;
  position: relative;
  font-size: 2em;
}

div {
  -webkit-transition-property: width, height;
  -webkit-transition-duration: 2s;
}

div.expand {
  width: 100%;
  height: 100%;
}

最佳答案

您的代码在连续点击时不起作用,因为您正在获取整个 class 属性,然后查找名为 $('.box1 Expand') 的元素,该元素不存在。相反,请在元素本身上使用 toggleClass,而不是构建类选择器:

$("img").on("click", function() {
    $(this).first().parents().eq(1).toggleClass("expand");
});

或者,您可以使用 closest() 稍微清理代码:

$("img").on("click", function() {
    $(this).closest('box1').toggleClass("expand");
});

关于jquery - csstoggleClass 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19956291/

相关文章:

javascript - IE6 Ajax 与 JQuery

jQuery .delay() 不起作用

javascript - 如何从 node.js 检索数据到 Ajax?

javascript - 如何在Javascript中检测页面的宽度和高度?

html - a::before 伪元素中的多个值

jquery - 动态自动调整 jQuery Datepicker 的大小以使其适合 div

php - 选择SQL查询从多个表中获取数据并在一张表中查看

javascript - JS/jQuery/CSS --- 用其中任何一个改变元素的水平顺序?

html - 嵌入视频位置

html - 如何为 Google Chrome 和 Google Tasks 网站创建用户样式?