动态JavaScript按钮单击

时间:2017-08-05 02:30:24

标签: javascript jquery html css

我有以下代码

self.GetPagination=function(){
  var rows=100;
  var page_rows=2;
  var last=Math.ceil(rows/page_rows);
  var previous="";
  var next="";

  if(last<1){
    last=1;
  }

  alert(ko.toJS(self.PageNo));
  var pagenum=ko.toJS(self.PageNo);

  var paginationCtrls="";

  if(last!=1){
    if(pagenum>1){
      previous=parseInt(pagenum-1);
      paginationCtrls = paginationCtrls+'<button onclick="test('+previous+')" />'+previous+'</button>';
      //paginationCtrls=paginationCtrls+"<a href=/pages/ViewAll.aspx?pn="+previous+"\><</a>";

      for(i=parseInt(pagenum-2); i<pagenum;i++){
        if(i>0){
          paginationCtrls=paginationCtrls+'<button onclick="test('+i+')" />'+i+'</button>';
        }
      }
    }

    paginationCtrls=paginationCtrls+" "+pagenum+"&nbsp;";

    for(i=parseInt(pagenum)+1;i<=last;i++){
      paginationCtrls=paginationCtrls+'<button onclick="test('+i+')" />'+i+'</button>';
      if(i>=parseInt(pagenum)+2){
        break;
      }
    }

    if(pagenum!=last){
      next=parseInt(pagenum)+1;
      paginationCtrls=paginationCtrls+'<button onclick="test('+next+')" />'+next+'</button>';
    }
  }

  $("#paginationFooter").append(paginationCtrls);
  last="";
}

这是测试功能,在按钮点击后调用,它将页码作为数据集变为变量,并再次调用GetPagination函数。

function test(data){
  alert("test called");
  self.PageNo=data;
  self.GetPagination();
}

当页面重新加载时,它工作正常:每个按钮单击生成动态按钮,下次不会点击。

1 个答案:

答案 0 :(得分:0)

self.GetPages();
   /*pagination technique*/ 
   self.GetPagination=function()
   { 
   var rows=ko.toJS(self.TotalRecord());
   var page_rows=2;
   var last=Math.ceil(rows/page_rows);
   self.Last=last;
   var previous="";
   var next="";
   if(last<1)
   {
        last=1;
   }
   var pagenum="";
   pagenum=ko.toJS(self.PageNo);  
   $("#paginationFooter").empty();
   if(pagenum<1)
   {
        pagenum=1;
   }
   else if(pagenum>last)
   {
        pagenum=last;
   }
   var paginationCtrls="";

   if(last!=1)
   {    
       if(pagenum>1)
       { 
        previous=parseInt(pagenum-1); 
        paginationCtrls=paginationCtrls+'<button type="button" class="btn btn-default btnPagination" value='+previous+'><</button>';
            for(i=parseInt(pagenum-2); i<pagenum;i++)
            {      
                if(i>0)
                {   
                    paginationCtrls=paginationCtrls+'<button class="btn btn-default btnPagination" type="button" value='+i+'>'+i+'</button>';
                }
            }
         }
        paginationCtrls=paginationCtrls+" "+pagenum+"&nbsp;";
        for(i=parseInt(pagenum)+1;i<=last;i++)
        {
            paginationCtrls=paginationCtrls+'<button class="btn btn-default btnPagination" type="button" value='+i+'>'+i+'</button>';          
            if(i>=parseInt(pagenum)+2)
            {   
                break;
            }
        }  
        if(pagenum!=last)
        {
            next=parseInt(pagenum)+1;
            paginationCtrls=paginationCtrls+'<button class="btn btn-default btnPagination" type="button" value='+next+'>></button>'; 
        }
   }
   $("#paginationFooter").append(paginationCtrls);
    last="";
}


$(document).on('click', '.btnPagination', function(){      
    self.ViewAllOffer($(this).val());
});