【发布时间】:2016-11-25 16:40:53
【问题描述】:
我在使用一些 JS 代码来检查用户选择了哪些产品来相互衡量时遇到了一些问题。
我们用函数 .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');
}
});
关于如何规避这个问题的任何想法?
【问题讨论】:
标签: javascript jquery pagination