jQuery:切换被单击的元素并隐藏所有其他

艾哈迈德·阿吉米

我想隐藏任何可见的span元素(如果可见),如果单击某个元素,则再次切换它

<div class="item">
    <a href="">element1</a> <span>span1</span>
    <br>
</div>

<div class="item">
    <a href="">element2</a> <span>span2</span>
    <br>
</div>

<div class="item">
    <a href="">element3</a> <span>span3</span>
    <br>
</div>

<div class="item">
    <a href="">element4</a> <span>span4</span>
    <br>
</div>

JS

$('.item span').hide();

var all_spans = $('.item a').parent().find('span');

$('.item a').click(function(e) {

    e.preventDefault();
    // hide all span
    all_spans.hide();
    $this = $(this).parent().find('span');
    // here is what I want to do
    if ($this.is(':hidden')) {
        $(this).parent().find('span').show();
    } else {
        $(this).parent().find('span').hide();
    }

});

实时示例http://jsfiddle.net/BGSyS/

问题是,例如,当我单击element 1span1”仍然可见时,我想切换此

土清
 $('.item span').hide();

$('.item a').click(function(e){

    e.preventDefault();
    // hide all span
    var $this = $(this).parent().find('span');
    $(".item span").not($this).hide();

    // here is what I want to do
    $this.toggle();

});

查看演示

更新说明:

问题是当您隐藏所有跨度时,您还隐藏了当前跨度=>所有跨度都具有相同的状态(隐藏),并且下一行再次显示它。隐藏时必须排除当前元素,并使用toggle方法切换其状态(比使用if检查更简单)

另一个问题是尝试通过使用var声明来避免隐式全局$this

var $this = $(this).parent().find('span');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果jquery slideToggle元素被切换,则隐藏所有其他元素

来自分类Dev

隐藏或显示其他div时单击元素的jQuery切换类

来自分类Dev

单击一个子元素时如何隐藏所有其他元素

来自分类Dev

jQuery:在一个元素上切换类,从所有其他元素上删除类

来自分类Dev

在d3中设置一个单击事件以隐藏所有其他元素

来自分类Dev

切换其他元素重复单击

来自分类Dev

展开-折叠切换可隐藏所有li项目

来自分类常见问题

使用jQuery切换时隐藏其他div

来自分类Dev

使用jQuery切换时隐藏其他div

来自分类Dev

jQuery切换并隐藏其他人

来自分类Dev

JQuery 隐藏所有元素

来自分类Dev

隐藏所有其他具有相同类的行,但单击的除外

来自分类Dev

显示1格,并使用Javascript单击隐藏所有其他格

来自分类Dev

显示一个div,单击隐藏所有其他

来自分类Dev

jQuery切换打开所有隐藏的div

来自分类Dev

单击时隐藏所有打开的同级元素

来自分类Dev

根据点击切换特定的div,隐藏相同类别的所有其他div

来自分类Dev

jQuery切换隐藏div元素

来自分类Dev

jQuery .each()切换隐藏元素

来自分类Dev

显示内容并隐藏所有其他相关对象

来自分类Dev

Swagger 示例属性隐藏所有其他属性

来自分类Dev

如何隐藏单击其他div即可切换的上一个div

来自分类Dev

在其他元素单击时从切换元素中删除活动类

来自分类Dev

jQuery隐藏所有没有类的元素

来自分类Dev

单击切换导航栏时获取其他元素的背景

来自分类Dev

jQuery 切换:当 1 处于活动状态时关闭所有其他选项卡

来自分类Dev

jQuery切换最终隐藏了单击的元素,而不是运行函数

来自分类Dev

即使单击具有stopPropagation的元素,也可以隐藏所有单击事件的元素

来自分类Dev

jQuery在切换时隐藏其他下拉菜单

Related 相关文章

  1. 1

    如果jquery slideToggle元素被切换,则隐藏所有其他元素

  2. 2

    隐藏或显示其他div时单击元素的jQuery切换类

  3. 3

    单击一个子元素时如何隐藏所有其他元素

  4. 4

    jQuery:在一个元素上切换类,从所有其他元素上删除类

  5. 5

    在d3中设置一个单击事件以隐藏所有其他元素

  6. 6

    切换其他元素重复单击

  7. 7

    展开-折叠切换可隐藏所有li项目

  8. 8

    使用jQuery切换时隐藏其他div

  9. 9

    使用jQuery切换时隐藏其他div

  10. 10

    jQuery切换并隐藏其他人

  11. 11

    JQuery 隐藏所有元素

  12. 12

    隐藏所有其他具有相同类的行,但单击的除外

  13. 13

    显示1格,并使用Javascript单击隐藏所有其他格

  14. 14

    显示一个div,单击隐藏所有其他

  15. 15

    jQuery切换打开所有隐藏的div

  16. 16

    单击时隐藏所有打开的同级元素

  17. 17

    根据点击切换特定的div,隐藏相同类别的所有其他div

  18. 18

    jQuery切换隐藏div元素

  19. 19

    jQuery .each()切换隐藏元素

  20. 20

    显示内容并隐藏所有其他相关对象

  21. 21

    Swagger 示例属性隐藏所有其他属性

  22. 22

    如何隐藏单击其他div即可切换的上一个div

  23. 23

    在其他元素单击时从切换元素中删除活动类

  24. 24

    jQuery隐藏所有没有类的元素

  25. 25

    单击切换导航栏时获取其他元素的背景

  26. 26

    jQuery 切换:当 1 处于活动状态时关闭所有其他选项卡

  27. 27

    jQuery切换最终隐藏了单击的元素,而不是运行函数

  28. 28

    即使单击具有stopPropagation的元素,也可以隐藏所有单击事件的元素

  29. 29

    jQuery在切换时隐藏其他下拉菜单

热门标签

归档