如何简化重复功能

时间:2013-03-20 16:07:48

标签: javascript jquery html simplify

我是编程和尝试简化一些jquery / javascript代码的新手,但我没有取得多大成功。我尝试调整此处的解决方案:jQuery Simplify

......但又一次,没有成功。

这是我的jquery代码:

<script>
$(document).ready(function(){

$("#hide01").click(function(){
$(".content01").hide();
});

$("#show01").click(function(){
$("p").hide();
$(".content01").show();
});

$("#hide02").click(function(){
$(".content02").hide();
});

$("#show02").click(function(){
$("p").hide();
$(".content02").show();
});

});
</script>

HTML:

<button id="hide01">Hide</button>
<button id="show01">Show</button>

<button id="hide02">Hide</button>
<button id="show02">Show</button>

<p class="content01">Content 01</p>

<p class="content02">Content 02</p>

此解决方案正在运行但我需要40个按钮/内容块......

任何人都可以提供帮助?谢谢!

2 个答案:

答案 0 :(得分:7)

我会将HTML更改为:

<button class="btn_hide" data-id="01">Hide</button>
<button class="btn_show" data-id="01">Show</button>

<button class="btn_hide" data-id="02">Hide</button>
<button class="btn_show" data-id="02">Show</button>

<p id="content01">Content 01</p>
<p id="content02">Content 02</p>

然后你的jQuery可以是:

$(".btn_hide").click(function() {
    $("#content"+this.getAttribute("data-id")).hide();
});
$(".btn_show").click(function() {
    $("p").hide();
    $("#content"+this.getAttribute("data-id")).show();
});

答案 1 :(得分:2)

使用jQuery你可以叠加选择器IE:

 $("#hide01, #show01").click(function(){
    $(".content01").hide();
 });

但我个人不会使用ID,而是使用一个类:

  <button id="hide01" class="hide">Hide</button>
  <button id="show01" class="show">Show</button>
  <button id="hide02" class="hide">Hide</button>
  <button id="show02" class="show">Show</button>
  <button id="hide03" class="hide">Hide</button>
  <button id="show04" class="show">Show</button>

<强> JS

 $(".hide").click(function(){
    $(".content01").hide();
 });
 //Etc Etc..