2016-11-25 97 views
0

我有一些JS代码的问题,我们正在使用它来检查用户选择哪个产品来衡量对方。jQuery分页和计算某些div

我们使用函数.length计算类'measure-active',并且所有工作都很好,但是最近我们引入了jQuery形式的分页和过滤器,因为这打破了函数能够测量每个产品其他当您点击另一个页面或过滤器时,产品将重新加载,而您点击过的以前的产品现在不再处于“活动”状态。

这是代码,我们有:

var linkstart = '/'; 
var link1 = ''; 
var link2 = ''; 
var first; 
var second; 
var check; 
$('input[class="measure-button"]').on('change', function (e) { 
    var active = $('input.measure-active').length; 
    if($(this).hasClass('measure-active')) { 
     $('input[class="measure-button"]').attr('disabled', false); 
     $(this).removeClass('measure-active'); 
     $('#measure-button').addClass('measure-button-disabled'); 
     $('#measure-button').attr('href', '#'); 
     $('#measure-button-two').addClass('measure-button-disabled'); 
     $('#measure-button-two').attr('href', '#'); 
     $('.measure-activate').removeClass('shown'); 
     $('.measure-block').removeClass('measure-inactive'); 
     //check if this is the first product highlighted, if so do below 
     if($(this).data('name') === first) { 
      link1 = link2; 
      check = 1; 
     } else { 
      check = 0; 
     } 
    } 
    else if(active == 1) { 
     $('input[class="measure-button"]').attr('disabled', true); 
     $(this).attr('disabled', false); 
     $(this).toggleClass('measure-active'); 
     $('#measure-button').removeClass('measure-button-disabled'); 
     $('#measure-button-two').removeClass('measure-button-disabled'); 
     $('.measure-activate').addClass('shown'); 
     link2 = $(this).data('company')+'/'+$(this).data('name'); 
     $('#measure-button').attr('href', linkstart+link1+'/versus/'+link2); 
     $('#measure-button-two').attr('href', linkstart+link1+'/versus/'+link2); 
     //first = second 
     if(check == 1) { 
      first = second; 
     } 
     second = $(this).data('name'); 
     //dim all other products 
     $('.measure-block').addClass('measure-inactive'); 
    } else if(active != 2) { 
     $(this).toggleClass('measure-active'); 
     $('#measure-button').addClass('measure-button-disabled'); 
     $('#measure-button-two').addClass('measure-button-disabled'); 
     $('.measure-activate').removeClass('shown'); 
     link1 = $(this).data('company')+'/'+$(this).data('name'); 
     $('#measure-button').attr('href', '#'); 
     $('#measure-button-two').attr('href', '#'); 
     first = $(this).data('name'); 
     $('.measure-block').removeClass('measure-inactive'); 
    } 
    else { 
     $(this).removeClass('measure-active'); 
    } 
}); 

如何绕过这个任何想法?

回答

0

我解决了这个改变:

$('input[class="measure-button"]').on('change', function (e) { 

$('body').on('change', 'input[class="measure-button"]', function (e) { 

而不是用。长度计数,简单地增加计数每次测量按钮被点击时的变量。