2016-09-20 188 views
-1

我正在点击按钮被点击的次数,但第三次我想退出该功能。在我的代码中,它不会在第三次点击后退出。有任何想法吗?感谢 在html页面中;点击次数按钮

<button onclick="myFunction()">Try it</button> 



<script> 
     var count = 0; 

     function myFunction(){ 

     count = count + 1; 
     alert(count); 

     if(count == 3){ 
    //exit the function but it's not doing that and keeps on counting. 
     return; 
     } 

     } 
    </script> 
+0

如果你退出函数,它仅仅意味着它停止执行。但是,下次单击该按钮时,它将再次执行。这里的目标究竟是什么 - 停止计数或停止执行该功能?或者这是一个XY问题吗? – vlaz

+0

它适合你吗? https://jsfiddle.net/cmedina/drfeg3wk/ – CMedina

回答

1

移动条件高于警报。每次单击该按钮时,都会调用该函数,该函数会在检查计数是否应该返回之前提醒计数。

<button onclick="myFunction()">Try it</button> 



<script> 
     var count = 0; 

     function myFunction(){ 

      if(count == 3){ 
       //exit the function but it's not doing that and keeps on counting. 
       return; 
      } 
      count = count + 1; 
      alert(count); 
     } 
</script> 
0

你的函数继续计数,因为你一直调用它。你可以这样做:

<button onclick="count < 3 && myFunction()">Try it</button> 
-2

每次点击按钮,你已经退出该功能并返回undefined

尝试count = 0里面的if声明。

1

只要将if块移到函数的开头。

function myFunction(){ 
    if(count == 3){ 
     //exit the function but it's not doing that and keeps on counting. 
     return; 
    } 
    count = count + 1; 
    alert(count); 
} 
0

每次点击你“退出”的功能,也就是说,它总是执行和返回是警报之后所以它总是显示。 您可以移动了,或者你可以简单地删除onclick属性和功能,甚至不会被调用,假设你的按钮的编号为btn_3_click

document.getElementById('btn_3_click').onclick = null; 

将删除onclick听众

0

这就是你现在正在做的。当你点击按钮时,你正在调用函数myFunction(),这是正确的。但是,每次单击按钮时,实际上只是一遍又一遍地调用该函数,这意味着即使在达到值3之后,再次按下该函数时,它将重复该函数,然后进度到数值4 ... 5 .... 6 ..等 它正在退出函数,除了因为您再次调用函数,第四次它仍然会一次又一次地增加。

查阅如何制作“停用可点击按钮”。我只是做了这个工作。正如你所看到的,我已经给这个按钮一个id myBtn,然后当这个值等于3时,我禁用了这个按钮。 (注意,该===表明,我也检查增量也是整数类型)

<button onclick="myFunction()" id = "myBtn">Try it</button> 

<script> 

    var count = 0; 
    function myFunction(){ 

     count = count + 1; 
     alert(count); 

     if(count === 3){ 
     //exit the function but it's not doing that and keeps on counting. 
      document.getElementById("myBtn").disabled = true; 
      } 

    } 
</script> 
0

你要记住,你点击功能关联到onclick事件被称为每次在你的按钮上。你的函数实际上是按照预期返回的。但你的if块在它的末尾是无用的。事实上,如果count等于3,您将进入并返回。如果不是,您将立即返回,这会产生相同的结果。

如果您希望在第三次点击后停止计数,则可以在计数器高于3时从函数的开始处返回,或者在发生点击事件时移除该函数的调用,紧接着第三次呼叫。

这里是第二溶液(https://jsfiddle.net/57saxtdr/

的Html

<button onclick="count(this)">test</button> 

的Javascript与您的结构中存在

var i = 0; 

function count(btn) 
{ 
    i ++; 
    alert(i); 

    if(i >= 3) btn.onclick = null; 
} 
0

问题的最小例子。从技术上讲,每次单击按钮时都会退出该功能。我添加了禁用行,并稍微改变了逻辑来帮助你。

<button id="specialButton" onclick="myFunction()">Try it</button> 
 
<script> 
 
     var count = 0; 
 
     function myFunction(){ 
 
     count = count + 1; 
 
     alert(count); 
 
     if(count >= 3){ 
 
    \t \t document.getElementById("specialButton").disabled = true; 
 
     return; 
 
     } 
 
     } 
 
</script>

你会看到,在第三次点击,您的按钮禁用自身。