我有 20 个实验,每个实验有 3 个按钮。当我单击每个按钮时,我会得到一组图像幻灯片。现在我可以为一个实验执行此操作,该实验涉及该实验中 3 个按钮的 3 个功能。
我需要为 20 个这样的实验这样做,但要对所有 20 个实验继续这样做,我需要 60 个函数,这是不合理的。
这是一个此类按钮事件的代码。
HTML:
<head>
<script type="text/javascript">
$(document).ready(function(){
$("#container1").hide();
$("#container2").hide();
$("#container3").hide();
});
</script>
</head>
<body>
<div>
<a id="a_exp1" href="javascript:void(0);" style="text-decoration:none; color:black;">
<div>
<img src="listIm_1.png">
<h5>AQUA HUNTER</h5>
<p>Can you make a magnet fetch fish for you?</p></br><hr>
</div>
</a>
</div>
<audio id="button">
<source src="button.wav" type="audio/wav"/>
</audio>
</body>
<div id="container1" >
<div id="slider1" >
<ul>
<li><img id="Img" src='slide_intro.png'/></li>
</ul>
</div>
</div>
JS:
$(function(){
$("a").click(function(){
var exp_id = $(this).attr("id");
if(exp_id == "a_exp1"){
$("#right").html("<div><img id='myimage1' onclick='changeimage1()' src='build_i.png'/><img id='myimage2' onclick='changeimage2()' src='apply_i.png'/><img id='myimage3' onclick='changeimage3()' src='learn_i.png'/></div>")
}
});
});
function changeimage1()
{ $("#nextBtn").remove();
$("#prevBtn").remove();
$("#PicInRightTitle").css({'visibility':'hidden'});
$("#container2").hide();
$("#container3").hide();
$("#container1").show();
$("#slider").easySlider({
auto: false,
continuous: true
});
document.getElementById('button').play();
cc=0;
if (cc==0)
{
cc=1;
document.getElementById('myimage1').src="build_a.png";
document.getElementById('myimage2').src="apply_i.png";
document.getElementById('myimage3').src="learn_i.png";
}
}
现在,在这个函数中,有几行是专门针对这一单键单击的,其中几行可以应用于所有 60 个函数。我怎样才能简化这个?如何将它循环到一个函数中?