我正在尝试使用 MixItUp 过滤在 AJAX 回调方法中动态创建的数据。我有 10 个部分,每个部分都有一个或多个过滤器。我面临的问题是,当我单击一个部分的过滤器时,所有其他部分的数据都会被隐藏。当我检查 DOM 时,没有发生覆盖以显示 none 来阻止。过滤器值都是唯一的。
// The "bindHandlers" method will listen for whenever a button is clicked.
bindHandlers: function () {
var self = this;
self.$filters.on('click', 'a', function (e) {
self.parseFilters();
});
},
parseFilters: function () {
var self = this;
// loop through each filter group and grap the active filter from each one.
for (var i = 0, group; group = self.groups[i]; i++) {
group.active = [];
group.$inputs.each(function () {
if ($(this).find('.selected').length > 0) {
group.active.push($(this).attr('data-filter'));
}
});
}
self.concatenate();
},
concatenate: function () {
var self = this;
self.outputString = ''; // Reset output string
for (var i = 0, group; group = self.groups[i]; i++) {
self.outputString += group.active;
}
// If the output string is empty, show all rather than none:
!self.outputString.length && (self.outputString = 'all');
// Send the output string to MixItUp via the 'filter' method:
if (self.$container.mixItUp('isLoaded')) {
self.$container.mixItUp('filter', self.outputString);
}
}
上面的代码是用 AJAX 回调函数编写的,click 事件触发 parseFilter 函数并达到连接,并且 outputString 仅包含正确的过滤器名称,但它仍然隐藏了所有其他让我感到困惑的部分图块。
谁能帮我。据我从谷歌搜索中了解到的,我们需要为 data-filter 设置一个值,并给出与过滤元素的类名相同的值。我也在使用 Knockout 来绑定数据