使用jQuery隐藏显示多次

发布于 2024-12-10 15:32:52 字数 802 浏览 0 评论 0原文

我使用下面的代码在单击时将最小化图标替换为展开图标。

$(document).ready(function(){
  $("#expand").click(function(){
    $(".expandicon").hide();
    $(".shrinkicon").show();
  });
  $("#shrink").click(function(){
    $(".expandicon").show();
    $(".shrinkicon").hide();
  });
});

唯一的问题是我只能使用它一次(第一个实例,然后第二个图标不会改变,依此类推)。总而言之,我必须使用它 5 次,因为我在一个页面中有 5 个表。知道怎么做吗?我对 Web 开发相当陌生,更不用说 jQuery 了。任何帮助将不胜感激。提前致谢!

[编辑] 这是我的 HTML 代码:

<span class="expandicon" style="display:none;">
  <a class="flip">
    <img id="expand" src="img/expand1.png" />
  </a>
</span>
<span class="shrinkicon">
  <a class="flip">
    <img id="shrink" src="img/shrink1.png" />
  </a>
</span>

* 将用类替换 id。我对那个不好。

I'm using the code below to replace a minimize icon to an expand icon when clicked.

$(document).ready(function(){
  $("#expand").click(function(){
    $(".expandicon").hide();
    $(".shrinkicon").show();
  });
  $("#shrink").click(function(){
    $(".expandicon").show();
    $(".shrinkicon").hide();
  });
});

The only problem is I can only use it once (first instance then the second icon doesn't change and so on). All in all, I would have to use it 5 times as I have 5 tables in a single page. Any idea how to do it? I'm fairly new with web development, not to mention jQuery. Any help would be greatly appreciated. Thanks in advance!

[EDIT] Here is my HTML code:

<span class="expandicon" style="display:none;">
  <a class="flip">
    <img id="expand" src="img/expand1.png" />
  </a>
</span>
<span class="shrinkicon">
  <a class="flip">
    <img id="shrink" src="img/shrink1.png" />
  </a>
</span>

* will replace id's with classes instead. my bad on that one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谁人与我共长歌 2024-12-17 15:32:52

$(".expandicon").hide();

隐藏页面中带有 class='expandicon' 的所有元素

$(".shrinkicon").show();

显示带有 class='shrinkicon' 的所有元素。

查看选择器

对于您的情况,请尝试以下操作:

HTML:

<span class="expandicon" style="display:none;"> expand 1 </span>
<span class="shrinkicon"> shrink 1 </span>
<br/>
<span class="expandicon" style="display:none;"> expand 2 </span>
<span class="shrinkicon"> shrink 2</span>

JS:

$(function(){
    $('span.expandicon').click(function(){
        $(this).toggle().next('span.shrinkicon').toggle();    
    });
    $('span.shrinkicon').click(function(){
        $(this).toggle().prev('span.expandicon').toggle();        
    });
});

You can test it 此处

With

$(".expandicon").hide();

you hide all elements in the page with class='expandicon'

and with

$(".shrinkicon").show();

all elements with class='shrinkicon' are shown.

Have a look in selectors.

For your case, try this:

HTML:

<span class="expandicon" style="display:none;"> expand 1 </span>
<span class="shrinkicon"> shrink 1 </span>
<br/>
<span class="expandicon" style="display:none;"> expand 2 </span>
<span class="shrinkicon"> shrink 2</span>

JS:

$(function(){
    $('span.expandicon').click(function(){
        $(this).toggle().next('span.shrinkicon').toggle();    
    });
    $('span.shrinkicon').click(function(){
        $(this).toggle().prev('span.expandicon').toggle();        
    });
});

You can test it here

笑饮青盏花 2024-12-17 15:32:52

您可以使用 css 将图像设置为背景。比创建一个类收缩和扩展并使用 toggleClass() ( http://api. jquery.com/toggleClass/ )在单击时在它们之间切换。

You can use css to set the image as background. Than create a class shrink and expand and use toggleClass() ( http://api.jquery.com/toggleClass/ ) to switch between them on click.

躲猫猫 2024-12-17 15:32:52

如果没有 HTML 代码,我们无法为您提供太多帮助,但这里有一些提示:

  • 您可以使用 .toggle() 方法根据元素之前的状态动态隐藏/显示元素
  • 如果您需要将相同的事件应用于多个元素,您最好使用 classes 而不是 >ids(记住 ids 是独特

[编辑]这是一个示例:http://jsfiddle.net/SShK6/< /a>

[编辑2] 这是一个 HTML 示例,如下所示: http://jsfiddle.net/ux8Nw/

We cannot help you much without HTML code but here are a few tips:

  • you can use the .toggle() method to hide / show dynamically an element depending on its previous state
  • if you need to apply the same event to several elements, you'd better use classes instead of ids (remember that ids are unique)

[EDIT] Here is an example: http://jsfiddle.net/SShK6/

[EDIT 2] Here is an example with your HTML like: http://jsfiddle.net/ux8Nw/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文