简体   繁体   English

如何在同一个按钮点击时触发第二个 javascript function

[英]How to trigger second javascript function on same button click

I need help to trigger two functions on same button click.我需要帮助才能在单击同一按钮时触发两个功能。 As of now first function triggers and changes the targeted DOM Element values as required but when I click the same button again then it does nothing.到目前为止,第一个 function 触发并根据需要更改目标 DOM 元素值,但是当我再次单击同一个按钮时,它什么也不做。 Please help me debug the code.请帮我调试代码。

var btnLabel = document.querySelector("alt").innerHTML;
var currentPrice = document.querySelectorAll(".priceTag pr");
var planUrl = document.querySelectorAll(".roundedbtn");
document.querySelector(".defaultBtn").addEventListener("click", function() {
    if(btnLabel === "Annual"){
        currentPrice[0].innerHTML = "2020";
        currentPrice[1].innerHTML = "2021";
        currentPrice[2].innerHTML = "2022";
        planUrl[0].href = "/checkout?level=4";
        planUrl[1].href = "/checkout?level=5";
        planUrl[2].href = "/checkout?level=6";
        planUrl[3].href = "/checkout?level=4";
        planUrl[4].href = "/checkout?level=5";
        planUrl[5].href = "/checkout?level=6";
        btnLabel = document.querySelector("alt").innerHTML = "Monthly";
    }
    
})
document.querySelector(".defaultBtn").addEventListener("click", function() {
    if(btnLabel === "Monthly"){
        currentPrice[0].innerHTML = "49";
        currentPrice[1].innerHTML = "99";
        currentPrice[2].innerHTML = "169";
        planUrl[0].href = "/checkout?level=1";
        planUrl[1].href = "/checkout?level=2";
        planUrl[2].href = "/checkout?level=3";
        planUrl[3].href = "/checkout?level=1";
        planUrl[4].href = "/checkout?level=2";
        planUrl[5].href = "/checkout?level=3";
        btnLabel = document.querySelector("alt").innerHTML = "Annual";
    }
})

I tried all possible tricks as per my understanding but couldn't make it work, So need a quick help.我根据自己的理解尝试了所有可能的技巧,但无法使其发挥作用,因此需要快速帮助。

Can you show the html?你能出示 html 吗? Perhaps its a reference error.也许它是一个参考错误。 You can add multiple 'click' listener but in this case (toggle) I think its more convenient to use one.您可以添加多个“点击”侦听器,但在这种情况下(切换)我认为使用一个更方便。 I changed the way you get/set btnLabel:我改变了你获取/设置 btnLabel 的方式:

var btnLabel = document.querySelector("alt").innerHTML;
var currentPrice = document.querySelectorAll(".priceTag pr");
var planUrl = document.querySelectorAll(".roundedbtn");
document.querySelector(".defaultBtn").addEventListener("click", function() {
    btnLabel = document.querySelector("alt").innerHTML;
    if(btnLabel === "Annual"){
        currentPrice[0].innerHTML = "2020";
        currentPrice[1].innerHTML = "2021";
        currentPrice[2].innerHTML = "2022";
        planUrl[0].href = "/checkout?level=4";
        planUrl[1].href = "/checkout?level=5";
        planUrl[2].href = "/checkout?level=6";
        planUrl[3].href = "/checkout?level=4";
        planUrl[4].href = "/checkout?level=5";
        planUrl[5].href = "/checkout?level=6";
        document.querySelector("alt").innerHTML = "Monthly";
    } else if(btnLabel === "Monthly") {
        currentPrice[0].innerHTML = "49";
        currentPrice[1].innerHTML = "99";
        currentPrice[2].innerHTML = "169";
        planUrl[0].href = "/checkout?level=1";
        planUrl[1].href = "/checkout?level=2";
        planUrl[2].href = "/checkout?level=3";
        planUrl[3].href = "/checkout?level=1";
        planUrl[4].href = "/checkout?level=2";
        planUrl[5].href = "/checkout?level=3";
        document.querySelector("alt").innerHTML = "Annual";
    }
    
})

Please try if combining both the set of statements like so is helpful:请尝试将这两组语句组合起来是否有帮助:

var btnLabel = document.querySelector("alt").innerHTML;
var currentPrice = document.querySelectorAll(".priceTag pr");
var planUrl = document.querySelectorAll(".roundedbtn");
document.querySelector(".defaultBtn").addEventListener("click", function() {
    if (btnLabel === "Annual") {
        currentPrice[0].innerHTML = "2020";
        currentPrice[1].innerHTML = "2021";
        currentPrice[2].innerHTML = "2022";
        planUrl[0].href = "/checkout?level=4";
        planUrl[1].href = "/checkout?level=5";
        planUrl[2].href = "/checkout?level=6";
        planUrl[3].href = "/checkout?level=4";
        planUrl[4].href = "/checkout?level=5";
        planUrl[5].href = "/checkout?level=6";
        btnLabel = document.querySelector("alt").innerHTML = "Monthly";
    } else if (btnLabel === "Monthly") {
        currentPrice[0].innerHTML = "49";
        currentPrice[1].innerHTML = "99";
        currentPrice[2].innerHTML = "169";
        planUrl[0].href = "/checkout?level=1";
        planUrl[1].href = "/checkout?level=2";
        planUrl[2].href = "/checkout?level=3";
        planUrl[3].href = "/checkout?level=1";
        planUrl[4].href = "/checkout?level=2";
        planUrl[5].href = "/checkout?level=3";
        btnLabel = document.querySelector("alt").innerHTML = "Annual";
    }
})

Have you tried tucking in both conditions withing the same click event?您是否尝试过在同一个点击事件中处理两种情况? Like below.如下图。

 var btnLabel = document.querySelector("alt").innerHTML; var currentPrice = document.querySelectorAll(".priceTag pr"); var planUrl = document.querySelectorAll(".roundedbtn"); document.querySelector(".defaultBtn").addEventListener("click", function() { if(btnLabel === "Annual"){ currentPrice[0].innerHTML = "2020"; currentPrice[1].innerHTML = "2021"; currentPrice[2].innerHTML = "2022"; planUrl[0].href = "/checkout?level=4"; planUrl[1].href = "/checkout?level=5"; planUrl[2].href = "/checkout?level=6"; planUrl[3].href = "/checkout?level=4"; planUrl[4].href = "/checkout?level=5"; planUrl[5].href = "/checkout?level=6"; btnLabel = document.querySelector("alt").innerHTML = "Monthly"; }else if(btnLabel === "Monthly"){ currentPrice[0].innerHTML = "49"; currentPrice[1].innerHTML = "99"; currentPrice[2].innerHTML = "169"; planUrl[0].href = "/checkout?level=1"; planUrl[1].href = "/checkout?level=2"; planUrl[2].href = "/checkout?level=3"; planUrl[3].href = "/checkout?level=1"; planUrl[4].href = "/checkout?level=2"; planUrl[5].href = "/checkout?level=3"; btnLabel = document.querySelector("alt").innerHTML = "Annual"; } });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何通过点击第一个按钮将第二个按钮传递给javascript函数 - how to pass second button on click over the first button to a javascript function 如何在 JavaScript 中使用相同的按钮触发一个又一个点击事件? - How to trigger a click Event after another with the same Button in JavaScript? Jquery 单击按钮,然后在第二页上触发具有相同 Class 或 ID 的按钮 - Jquery Click button then trigger a button on second page with the same Class or ID 如何单击按钮并在webdriver中触发javascript函数? - How can I click on a button and trigger a javascript function in webdriver? 如何在单击时调用一个 function 但在第二次单击(相同按钮)时调用另一个 function? Angular - How to call one function at click but on second click (same button) call another function? Angular 如何将相同的javascript函数绑定到输入更改和按钮单击 - how to bind the same javascript function to an input change and a button click 如何将第二次单击添加到按钮纯javascript - how to add second click to the button plain javascript 如何触发按钮在 JavaScript 中单击 Enter - How To Trigger Button Click on Enter in JavaScript jquery,如何通过单击按钮触发功能? - jquery, how to trigger function from a button click? 如何通过输入按钮单击触发功能 - How to trigger a function with a input button click
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM