MediaWiki:CharacterTable.js: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
No edit summary |
(Fixed filtering by multiple toggles) |
||
Line 1:
$( document ).ready(function() {
var charactertable_filters = new Set();
$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));});
});
Line 10 ⟶ 11:
if (toggleItem.hasClass("inactive")) {
toggleItem.addClass('active').removeClass('inactive');
charactertable_filters.delete(toggleItem.attr('data-toggle'));
}
else {
toggleItem.addClass('inactive').removeClass('active');
charactertable_filters.add(toggleItem.attr('data-toggle'));
toggleState = false;▼
}
$(".charactertable tr
(toggleState) ? $(this).addClass('visible').removeClass('hidden') : $(this).addClass('hidden').removeClass('visible');▼
charactertable_filters.forEach(filter => {
if ($(this).hasClass(filter)) hideRow = true;
});
▲
else $(this).addClass('visible').removeClass('hidden');
});
|
Revision as of 18:38, 3 February 2023
$( document ).ready(function() {
var charactertable_filters = new Set();
$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));});
});
function characterTableToggle (toggleItem){
//console.log('toggling '+toggleItem.attr('data-toggle'));
toggleItem = (typeof toggleItem !== 'undefined') ? toggleItem : false; //default false, ES5 does not support function defaults
if (toggleItem) {
if (toggleItem.hasClass("inactive")) {
toggleItem.addClass('active').removeClass('inactive');
charactertable_filters.delete(toggleItem.attr('data-toggle'));
}
else {
toggleItem.addClass('inactive').removeClass('active');
charactertable_filters.add(toggleItem.attr('data-toggle'));
}
$(".charactertable tr").each(function (element){
hideRow = false;
charactertable_filters.forEach(filter => {
if ($(this).hasClass(filter)) hideRow = true;
});
if (hideRow) $(this).addClass('hidden').removeClass('visible');
else $(this).addClass('visible').removeClass('hidden');
});
}
}