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: | Line 1: | ||
$( document ).ready(function() { |
$( document ).ready(function() { |
||
var charactertable_filters = new Set(); |
|||
$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));}); |
$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));}); |
||
}); |
}); |
||
Line 10: | Line 11: | ||
if (toggleItem.hasClass("inactive")) { |
if (toggleItem.hasClass("inactive")) { |
||
toggleItem.addClass('active').removeClass('inactive'); |
toggleItem.addClass('active').removeClass('inactive'); |
||
charactertable_filters.delete(toggleItem.attr('data-toggle')); |
|||
toggleState = true; |
|||
} |
} |
||
else { |
else { |
||
toggleItem.addClass('inactive').removeClass('active'); |
toggleItem.addClass('inactive').removeClass('active'); |
||
charactertable_filters.add(toggleItem.attr('data-toggle')); |
|||
⚫ | |||
} |
} |
||
$(".charactertable tr |
$(".charactertable tr").each(function (element){ |
||
⚫ | |||
⚫ | |||
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');
});
}
}