【问题标题】:Javascript Executes function onload but not firing onclick event for button [duplicate]Javascript执行函数onload但不触发按钮的onclick事件[重复]
【发布时间】:2018-11-11 06:29:41
【问题描述】:

您好,我刚刚学习了 javascript 查询事件处理函数,由于某种原因,即使我在结束 body 标记之前导入了 javascript,javascript 也会在加载时执行

由于某种原因,onclick 事件没有触发,请有人告诉我为什么!谢谢!

var starter=0;
var type;

var addstarter=document.querySelector("#addstarter");
addstarter.addEventListener("click",calculate("addstarter"));

var minusstarter=document.querySelector("#minusstarter");
minusstarter.addEventListener("click",calculate("minusstarter"));

function calculate(type)
{   
  switch(type)
  {
    case'addstarter': starter=starter+1;
    break;

    case 'minusstarter':starter=starter-1;
    break;
    }
    alert(starter);
}
#Starter
{
  float:left;
  width:25%;
  height:40%;
  background-color:rgb(55, 128, 85);
  color: white;
  margin: 5% 1% 1% 4%;
  padding: 1% 1% 1% 1%;
  color: black;
  border-radius: 10% 10% 10% 10%;
}

#Starter img
{
  width:50%;
  margin-top: -5%;
}
<main>
    <div id="Starter">
      
     <div class="card_border">
        <div class="card_heading">
         <p> Starter Pack </p>
        </div>
        <div class="card_content">
        <input type="button" value="+" class=" button button1" id="addstarter"/>
        <a href="https://en.wikipedia.org/wiki/Entr%C3%A9e"><img src="images/starterr.png"></a>
        <input type="button" value="-" class=" button button2" id="minusstarter"/>
        <span class="tooltiptext">$5</span>
        </div>
      </div>  
    </div>

【问题讨论】:

    标签: javascript jquery html css ajax


    【解决方案1】:

    你需要更换:

    addstarter.addEventListener("click", calculate("addstarter"));

    到:

    addstarter.addEventListener("click", () =&gt; calculate("addstarter"));

    Cause it should be a callback

    var starter=0;
    var type;
    
    var addstarter=document.querySelector("#addstarter");
    addstarter.addEventListener("click", () => calculate("addstarter"));
    
    var minusstarter=document.querySelector("#minusstarter");
    minusstarter.addEventListener("click", () => calculate("minusstarter"));
    
    function calculate(type)
    {   
      switch(type)
      {
        case'addstarter': starter=starter+1;
        break;
    
        case 'minusstarter':starter=starter-1;
        break;
        }
        alert(starter);
    }
    #Starter
    {
      float:left;
      width:25%;
      height:40%;
      background-color:rgb(55, 128, 85);
      color: white;
      margin: 5% 1% 1% 4%;
      padding: 1% 1% 1% 1%;
      color: black;
      border-radius: 10% 10% 10% 10%;
    }
    
    #Starter img
    {
      width:50%;
      margin-top: -5%;
    }
    <main>
        <div id="Starter">
          
         <div class="card_border">
            <div class="card_heading">
             <p> Starter Pack </p>
            </div>
            <div class="card_content">
            <input type="button" value="+" class=" button button1" id="addstarter"/>
            <a href="https://en.wikipedia.org/wiki/Entr%C3%A9e"><img src="images/starterr.png"></a>
            <input type="button" value="-" class=" button button2" id="minusstarter"/>
            <span class="tooltiptext">$5</span>
            </div>
          </div>  
        </div>

    【讨论】:

    • 答案不能只包含代码。添加对您所做的事情和原因的说明。
    • 我知道,我编辑了我的答案,请投票..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多