2

我正在用 django 开发一个应用程序。我正在尝试根据通过您的网络摄像头观看您的人数来实现得分计数器。

我实现了一个函数来获取正在观看你直播的人数。现在我想要另一个计数,它采用用户的现有分数并每分钟为每个正在观看的人添加一分。

这是获取观看人数的功能:

  var url = window.location.pathname.split('/');
  var id = url[3];

setInterval(function() {
   $.ajax({
       type: "GET",
       url: "http://myxml",
       success: parseXml
   });
}, 2000);

function parseXml(xml){
   $(xml).find("user").each(function() {

           if($(this).attr("id") === id ) {
               $(".Score").html($(this).attr("count"))
           }
       });
}

它完美地工作。

现在,这是我尝试实现以获取现有分数并为其添加分数的函数:

   setInterval(function UserScore(){
      var self = $(this),
      score=self.attr('existing-score'),
      $(".PlayerScore").html($(this).attr("Score"+"existing-score"))
   }, 60000);

以及呈现它的html:

 <div class="PlayerScore" existing-score="{{ dub.user.userprofile.score }}"></div>

这个功能不起作用。什么都没有出现。

我真的是 Django 和 Javascript 的新手,所以我猜这个函数肯定有很多错误。因此,非常欢迎任何帮助。谢谢。

4

1 回答 1

0

尝试这个:

setInterval(function(){
  var score = $(".PlayerScore").attr('existing-score');
  var watchers = $(".Score").attr("count");
  $(".PlayerScore").html($(this).attr(score+watchers))
}, 60000);

这里有一些变化。

  • 使用var关键字将变量声明保持在当前范围内。否则,您将声明全局变量,最终您将踩到其他一些具有相同名称的变量。非常难调试。
  • 无需命名函数UserScore,只需将其设为匿名即可。
  • 获取现有score作为值,并获取数量watchers作为值。
  • PlayerScore将这些值设置为新的组合。PlayerScore是一个类,我不知道这是否是故意的,但如果它是一个id.
于 2012-10-25T09:12:40.777 回答