简体   繁体   English

(JavaScript)脚本不会只计数一次,也许不能识别变量?

[英](Javascript) Script won't count just once, perhaps not recognizing variable?

I'm sure this is a super easy fix and I just can't see it.. I have a play button and I only want it to write to database (inc playcount) only when it's clicked the first time. 我确信这是一个超级简单的修复程序,但我看不到它。.我有一个播放按钮,只希望它在第一次单击时才写入数据库(包括播放计数)。

Any idea why this doesn't work? 知道为什么这行不通吗? This result counts every click, and if I do if countonce = 0 and declare at beginning as 0 it won't count any clicks. 此结果计算每次点击,如果countonce = 0并在开始时声明为0,则不会计算任何点击。 Am I misunderstanding javascript? 我误解了javascript吗?

 <div id="left-05-play_">
 <script type="text/javascript">
 var currsong = 1;
 var playcountadd = document.getElementById('left-05-play_');
 playcountadd.onclick = function() {
 if (countonce != 1) {
 $.post( "php/songadd.php", { addsong: "1", } );
 var countonce = 1;
 } }
 </script>
 </div>

Thank-you for taking the time to read this question. 感谢您抽出宝贵时间阅读此问题。

This should do the trick. 这应该可以解决问题。

var currsong = 1;
var songadded = false;
var playcountadd = document.getElementById('left-05-play_');

playcountadd.onclick = function() {
   if (!songadded) {
      $.post( "php/songadd.php", { addsong: "1", } );
      songadded = true;
   }
}
  • Changed countonce to songadded countonce songadded更改为songadded
  • Moved songadded out of onclick function songaddedonclick功能之外
  • Changed songadded to boolean logic songadded为布尔逻辑
  • Check whether songadded=false before proceeding with AJAX post 在继续进行AJAX发布之前,请检查songadded=false是否

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM