首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单个jQuery函数单独切换多个元素

问单个jQuery函数单独切换多个元素
EN

Stack Overflow用户
提问于 2014-07-04 05:53:58
回答 2查看 11.9K关注 0票数 5

我需要一个可以重新使用的单个jQuery函数来单独切换多个元素。jQuery页面上的http://api.jquery.com/slidetoggle/代码示例对于使用按钮的单个元素很好,但对于使用非按钮元素的多个元素则不起作用。

我的代码(改编自jQuery幻灯片切换示例):

代码语言:javascript
复制
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>slideToggle demo</title>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>

<div class="first">Toggle first</div>
    <p class="first">First hidden paragraph.</p>
<div class="second">Toggle second</div>
    <p class="second">Second hidden paragraph.</p>

<script>
$( "div.first" ).click(function() {
$( "p.first" ).slideToggle(0);
});
</script>

<script>
$( "div.second" ).click(function() {
$( "p.second" ).slideToggle(0);
});
</script>

</body>
</html>

代码允许每个元素单独切换,这正是我想要的。但是,我的代码有两个问题:

  1. 这是重复和低效的,因为需要为我想要切换的每个元素编写一个新脚本(我更喜欢单个函数来切换特定类名的任何元素)。
  2. 默认情况下,显示页面时,所有元素都会全部显示。我希望默认情况下隐藏可切换的元素。

我一直未能找到解决这两个问题的直截了当的办法。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-04 05:55:09

对事件源的所有集合使用相同的类。对于n个html集,您只能有效地使用两个类。

现场演示

代码语言:javascript
复制
<div class="first">Toggle first</div>
    <p class="first-p">First hidden paragraph.</p>
<div class="first">Toggle second</div>
    <p class="first-p">Second hidden paragraph.</p>

将当前对象与next()一起使用

代码语言:javascript
复制
$('.first-p').hide();   
$( "div.first" ).click(function() {
    $(this).next().slideToggle(1000);
});
票数 3
EN

Stack Overflow用户

发布于 2014-07-04 06:51:08

代码语言:javascript
复制
$(function () {
    $(".first, .second")
    .filter("p")
    .toggle()
    .addBack()
    .not("p")
    .click(function (e) {
       return $("." + e.target.className).not("div").slideToggle(0)
    });
});

jsfiddle http://jsfiddle.net/guest271314/6aMk7/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24567542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档