【问题标题】:How to change the onclick of a button to another function using JavaScript?如何使用 JavaScript 将按钮的 onclick 更改为另一个函数?
【发布时间】:2017-07-08 04:32:42
【问题描述】:

这是我要问的第一个问题。是否可以将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调用第二个函数。

这可能吗?

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

【问题讨论】:

    标签: javascript onclick


    【解决方案1】:

    你可以有计数器,每次调用你的函数增加计数器的数量并选择你需要的操作。或者你可以在 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>
    

    【讨论】:

    • OP 在问题中的哪个位置提到图像名称具有相同的模式并由附加数字 1 和 2 区分?
    • 如果计数器是 3 或 4 会发生什么?我认为这不是一个合适的答案,以及为什么这被投票?
    • @AKA用户没有提到任何类型的图像,他喜欢的任何类型都可以插入。
    • 如果是这样,那么需要提到每个计数器值,而不仅仅是计数器 ==0 或计数器==1。 OP还询问“是否可以将onclick =“change()”更改为另一个功能,如onclick =“change1()”。不是你回答的那个。
    • @AKA 不需要。用户想更改他们的图像 src。不需要调用另一个函数
    【解决方案2】:

    你可以使用这段代码sn-p来动态关联和改变元素的onclick函数。

    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()')
    }
    <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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多