JQuery 测试元素是可见的还是隐藏的,然后添加删除类
JQuery testing if an element is visible or hidden and then add remove classes
我隐藏了一个在页面加载时开始的div。当我切换"+"元素时,相对div 切换为可见。我正在尝试添加一个基于 is(":hidden") 或不带有 if - else 语句的类。
我的HTML是:
<div class="views-row">
<div class="field-group-format-toggler-abstract">+</div>
<h2>Title 1</h2>
<div class="field-group-format-wrapper" style="display:none;">
Dolor minim neque pala ratis sit. Ideo odio praesent. Aliquam capto gravis quis. Antehabeo diam huic praemitto. Immitto pneum ratis vereor volutpat. Brevitas facilisis illum macto mos plaga ratis utrum. Jumentum rusticus secundum
</div>
</div>
我的 JQuery 是:
$(".field-group-format-toggler-abstract").click(function() {
$(this).nextAll(".field-group-format-wrapper").toggle();
});
if($(".field-group-format-wrapper").is(":hidden"))
// this seems to work, 'closed' gets added
$('.field-group-format-toggler-abstract').addClass("closed");
// but this part does not seem to work
else
$('.field-group-format-toggler-abstract').addClass("open").removeClass("closed");
这第一部分有效,但添加和删除类无效。我已经尝试了各种方法来做到这一点,但似乎没有任何效果,该类只是保留在closed
.
这是一个小提琴
试试这个,
$(".field-group-format-toggler-abstract").click(function() {
var $div = $(this).nextAll(".field-group-format-wrapper"); // <-- cache the selector
$div.toggle();
$(this).toggleClass('open', $div.is(':visible')); // <-- if wrapper div is visible class open will be added // else it will be removed
$(this).toggleClass('closed', $div.is(':hidden')); // <-- if wrapper div is hidden class open will be added // else it will be removed
});
您可以在 .toggleClass() 中传入条件/切换到作为第二个参数
http://jsfiddle.net/LHguJ/25/
试试这个,
if($(".field-group-format-wrapper").is(":visible")){
$('.field-group-format-toggler-abstract').addClass("close").removeClass("open");
}
else {
$('.field-group-format-toggler-abstract').addClass("open").removeClass("closed");
}
相关文章:
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- JQuery 测试元素是可见的还是隐藏的,然后添加删除类
- 我需要帮助来调用add()函数和验证函数,所以首先它将验证和然后添加
- 计算具有特定类的元素的数量,然后添加对它们进行编号的ID
- 我可以使用jquery和AJAX来调用cgi-bin脚本,然后添加消息事件来处理服务器发送事件吗
- JavaScript create 元素,然后添加它一个事件
- 如何使用 javascript 在
中搜索字符串,然后添加到该 id - Ember - 绑定到数组控制器中的过滤列表,然后添加新记录
- iMacros 循环然后停止,然后添加另一个命令
- 从依赖于下拉菜单的文本框中获取值,然后添加值
- 获取输入的小计,然后添加
- Angular2-NgFor内部树模型:删除然后添加元素时顺序错误
- 如何将单词转换为数字,然后添加
- 输入值检查为唯一,然后添加到对象数组- JavaScript
- 我如何删除.append()然后添加.append()
- 是否有可能将大量文本包装三次,然后添加更多链接
- jQuery优化有效的过滤,然后添加类到多个元素
- 如何为cakephp中定义的表单标签添加类,然后添加jquery事件
- Jquery获取选择选项值,然后添加参数