首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写针对不同div的多次单击函数?

如何编写针对不同div的多次单击函数?
EN

Stack Overflow用户
提问于 2020-02-11 02:03:39
回答 2查看 139关注 0票数 2

我在一页上有很多按钮。每一个都与页面上各自独立的div相关。单击按钮1时,显示div 1。单击按钮2时,显示div 2,以此类推。

下面编写下面的jQuery的最好方法是什么,这样我就不必为每个需要添加的新按钮和新div继续编写新函数了?

代码语言:javascript
复制
$("#bio-1").click(function () {
     $('.one').toggle(); 
});


 $("#bio-2").click(function () {
     $('.two').toggle(); 
});

$("#bio-3").click(function () {
     $('.three').toggle(); 
});

$("#bio-4").click(function () {
     $('.four').toggle(); 
});

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-11 02:11:35

您可以尝试使用data-*属性,单击该属性只可以找到要切换的特定元素。

演示:

代码语言:javascript
复制
$("[id^=bio-").click(function () {
  $(`div[data-id=${this.id}]`).toggle(); 
});
代码语言:javascript
复制
div{
 width: 100%;
 border: 1px solid lightgray;
 margin: 5px;
 padding: 2px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="bio-1">Button-1</button>
<button id="bio-2">Button-2</button>
<button id="bio-3">Button-3</button>
<button id="bio-4">Button-4</button>

<div class="one" data-id="bio-1">One</div>
<div class="two" data-id="bio-2">Two</div>
<div class="three" data-id="bio-3">Three</div>
<div class="four" data-id="bio-4">Four</div>

票数 4
EN

Stack Overflow用户

发布于 2020-02-11 02:24:47

这取决于你如何初始化你的显示器..。隐藏的或所有可见的div。这就像一个基于公共标识符的切换,它将使您保留实际的HTML代码,并缩短和组织您的javascript代码。

若要使用切换函数,应按照预期的可见性逻辑初始化样式。

代码语言:javascript
复制
$('div[data-id!=""]').hide();
$("[id^=bio-]").on("click", function () {
$('div[data-id!=""]').hide();
$('div[data-id="'+$(this).data('id')+'"]').show();
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="bio-1" data-id="1">One</button>
<button id="bio-2" data-id="2">Two</button>
<button id="bio-3" data-id="3">Three</button>
<button id="bio-4" data-id="4">Four</button>

<div class="one" data-id="1">One</div>
<div class="two" data-id="2">Two</div>
<div class="three" data-id="3">Three</div>
<div class="four" data-id="4">Four</div>

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

https://stackoverflow.com/questions/60160985

复制
相关文章

相似问题

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