获取增量值但不减少值

时间:2014-11-11 07:22:55

标签: javascript php html ajax

我有这个功能。

  function getnewads(){
      var newer ;
      var old_val =  $("#new_data").val() ;
    $.ajax({
         type: "POST",
          url: "users/process.php",
         data:{
              getnewads: "getnewads"
              },
        cache: false ,
      dataType: 'json',
         async: false
   }).success(function(dat){
    if(dat.status == 'success'){
             $("#new_data").empty();
                for(i = 0;i < dat.id.length; i++){
                  if(old_val > dat.counts ){ newer = old_val ;}else{ newer = dat.counts; }
            $("#new_data").html('<div value="'+newer+'" class="added_ad">'+ newer +' new ads </div>');


            }
            }
    //console.clear();
 });
  }

和html

   <div id="new_data" class="new_data">
   </div>

在广告php文件中我有

   getnewads();
   setInterval(function() { getnewads(); }, 10000);

使用每隔10秒获取一次广告的流程文件。我有这个查询每10秒检查一次新广告。

   SELECT m.id ,m.created_pub ,count(*) as counts FROM ads m 
                            WHERE m.published=1  AND TIMESTAMPDIFF(SECOND,created_pub,?)< 100 

我的问题:

一切正常,但我无法达到理想的效果。

示例:

如果有1个广告正在投放,则会显示----&gt; 1个新广告

如果有2个广告正在投放,则会显示----&gt; 2个新广告。

但是如果时差是mpre然后是10秒,则显示---&gt; 0个新广告(再次)。

我想要的是不会减少数到0,但我希望它留在2个新广告,直到我点击该div然后它将重置计数到0完全像新问题中的Stackoverflow。< / p>

有什么东西我不见了?任何帮助将不胜感激。

编辑:在使用答案之后我使用了这个功能,但我仍然得到了不想要的结果。当它变空时,我改变了显示和隐藏div。

  function getnewads(){
  var newer ;
     // This fetches old value from 'data-value' attribute
   var old_val =  $("#new_data").data('value') ;
  $.ajax({
    type: "POST",
    url: "users/process.php",
    data:{
        getnewads: "getnewads"
    },
    cache: false ,
    dataType: 'json',
    async: false
 }).success(function(dat){
  if(dat.status == 'success'){
      $("#new_data").empty();
      for(i = 0;i < dat.id.length; i++){
          if(old_val >= dat.counts ){ newer = dat.counts ;}else{ newer = old_val; }
        if(newer > 0){
          $("#new_data").html('<div class="added_ad">'+ newer +' new ads </div>');
          // This set 'data-value' attribute to #new_data element
          $("#new_data").data('value',newer);
          $("#new_data").show();
          }
      else{$("#new_data").hide();
                $("#new_data").data('value',0);
               }

      }
  }
 });
 }

功能发生的是:

如果有1个广告 - &gt;它显示了1个新广告。在查询10秒后,它会消除此new_data的div。所以我明白它并没有保存旧的价值。

出了什么问题?

1 个答案:

答案 0 :(得分:1)

我可以在您的代码中看到两个问题

  1. 请勿在{{1​​}}中使用值尝试使用数据值,然后使用获取旧值 div

  2. 您还要将值添加到错误的元素中。试试这个。

    $('#new_data').data('value');