如何使用JavaScript将按钮的onclick更改为另一个功能?

时间:2017-07-08 04:32:42

标签: javascript onclick

这是我提出的第一个问题。是否可以将onclick="change()"更改为另一个功能,例如onclick="change1()"

我的代码是这样的:

<a href="#" onclick="changeSrc()" id="a1"><img src="images/transparent-arrow-hi.png" style="position:absolute; top:525px; left:1000px; height:50px; width:50px;" ></a>
<img src="images/keyboard.png" id="pic1">
<img src="images/mouse1.png" id="pic2">
<img src="images/PCstand.png" id="pic3">
<img src="images/monitor.png" id="pic4">

我的Javascript如下:

<script>
function changeSrc() {
document.getElementById('pic1').src="images/robber1.jpg";
document.getElementById('pic2').src="images/guarding entrance 1.jpg";
document.getElementById('pic3').src="images/Lock.ico";
document.getElementById('pic4').src="images/Number pads.jpg";
}
</script>

到目前为止,这对改变img src很有用,但我想多次点击同一个按钮将img src更改为其他按钮。

所以它就像这个按钮,当onclick时,可以调用第一个函数来改变img src,同时准备onclick来调用第二个函数。

这甚至可能吗?

如果需要,我可以添加更多代码。

2 个答案:

答案 0 :(得分:2)

你可以有计数器,每次调用你的函数增加计数器数量并选择你需要的动作。或者你可以在changeSrc函数中使用switch

<script>
var counter = 0;
function changeSrc() {
 if(counter==0){
    document.getElementById('pic1').src="images/robber1.jpg";
    document.getElementById('pic2').src="images/guarding entrance 1.jpg";
    document.getElementById('pic3').src="images/Lock.ico";
    document.getElementById('pic4').src="images/Number pads.jpg";
}
 if(counter==1){
    document.getElementById('pic1').src="images/robber2.jpg";
    document.getElementById('pic2').src="images/guarding entrance 2.jpg";
    document.getElementById('pic3').src="images/Lock2.ico";
    document.getElementById('pic4').src="images/Number pads2.jpg";
}
    counter++;
}
</script>

如果您的图片具有类似数字的图案,则可以执行此操作

<script>
var counter = 0;
function changeSrc() {
    document.getElementById('pic1').src="images/robber"+counter+".jpg";
    document.getElementById('pic2').src="images/guarding entrance "+counter+".jpg";;
    document.getElementById('pic3').src="images/Lock "+counter+".ico";;
    document.getElementById('pic4').src="images/Number pads"+counter+".jpg";;    
 counter++;
}
</script>

答案 1 :(得分:0)

您可以使用此代码段动态关联和更改元素的onclick功能。

&#13;
&#13;
function changeSrc(_this){
 //associate function change1 inside changeSrc
 $(_this).attr('onclick','change1(this)');
}

function change1(_this){
//associate function change2 inside change1
  $(_this).attr('onclick','change2(this)');
  console.log('Iniside Change1()')
}

function change2(_this){
//associate function change3 inside change2
  $(_this).attr('onclick','change3(this)');
  console.log('Iniside Change2()')
}

function change3(_this){
  console.log('Iniside Change3()')
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" onclick="changeSrc(this)" id="a1"><img src="images/transparent-arrow-hi.png" style="position:absolute; top:525px; left:1000px; height:50px; width:50px;" >click</a>
&#13;
&#13;
&#13;