2015-05-13 5 views
1
<label> 
    <select id="length" size="1" name="example_length" class="form-control" aria-controls="example"> 
     <option value="10" selected="selected">10</option> 
     <option value="25">25</option> 
     <option value="50">50</option> 
     <option value="100">100</option> 
    </select> 

    records per page</label> 

$('#tableAll').each(function() { 
    var currentPage = 0; 
    var numPerPage = 10; 
    var $table = $(this); 
    $table.bind('repaginate', function() { 
     $table.find('tbody tr').hide().slice(currentPage * numPerPage, (currentPage + 1) * numPerPage).show(); 
    }); 
    $table.trigger('repaginate'); 
    var numRows = $table.find('tbody tr').length; 
    var numPages = Math.ceil(numRows/numPerPage); 
    var $pager = $('<div class="pager"></div>'); 
    for (var page = 0; page < numPages; page++) { 
     $('<span class="page-number"></span>').text(page + 1).bind('click', { 
      newPage: page 
     }, function (event) { 
      currentPage = event.data['newPage']; 
      $table.trigger('repaginate'); 
      $(this).addClass('active').siblings().removeClass('active'); 
     }).appendTo($pager).addClass('clickable'); 
    } 
    $pager.insertBefore($table).find('span.page-number:first').addClass('active'); 
}); 

У меня есть выбор в HTML, и у меня есть функция javascript, которая является разбиением на страницы внутри таблицы. Как изменить var numPerPage на основе выбора в HTML? Благодарю.Изменение значения переменной для выбранной опции

+0

у вас есть два основных варианта, вы можете связать слушателя выбора элемента, или (мой предпочтительный), положить 'OnChange =«doFunction (это)»' в окне выбора элемента. Вы предпочитаете друг друга? – NappingRabbit

+0

Можно ли это сделать с функцией изменения? но что входит внутрь {} в выражении if – Hrca

+1

$ ("#length") .change (function() { $ ("select option: selected") .each (function() { if ($ (this) .attr («значение») === «25») { } }); }). change(); – Hrca

ответ

0

Вы можете просто установить переменную numPerPage как этот

$("#length").change(function() { 
     var numPerPage = $("#length").val()); 
}); 

Тогда вы можете назвать это, где вы будете запускать функцию

+0

вы определили локальную переменную, область которой заканчивается как раз в обратном вызове изменения – Burimi

0

Вы можете сделать пагинацию на change() случае избранных.

$("#length").change(function() { 
    var numPerPage = $(this).val(); 
      $('#tableAll').each(function() { 
     var currentPage = 0; 
     var $table = $(this); 
     $table.bind('repaginate', function() { 
      $table.find('tbody tr').hide().slice(currentPage * numPerPage, (currentPage + 1) * numPerPage).show(); 
     }); 
     $table.trigger('repaginate'); 
     var numRows = $table.find('tbody tr').length; 
     var numPages = Math.ceil(numRows/numPerPage); 
     var $pager = $('<div class="pager"></div>'); 
     for (var page = 0; page < numPages; page++) { 
      $('<span class="page-number"></span>').text(page + 1).bind('click', { 
       newPage: page 
      }, function (event) { 
       currentPage = event.data['newPage']; 
       $table.trigger('repaginate'); 
       $(this).addClass('active').siblings().removeClass('active'); 
      }).appendTo($pager).addClass('clickable'); 
     } 
     $pager.insertBefore($table).find('span.page-number:first').addClass('active'); 
    }); 
    }); 
Смежные вопросы