From 311f2557d3de614836490990c146423f2c9a13bb Mon Sep 17 00:00:00 2001 From: Nicolas Le Goff Date: Tue, 5 Nov 2013 14:50:27 +0100 Subject: [PATCH] Enhance CSS selector for IE performance --- www/skins/prod/jquery.main-prod.js | 40 ++++++++++++++++-------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/www/skins/prod/jquery.main-prod.js b/www/skins/prod/jquery.main-prod.js index f4acd0427d..41261b686d 100644 --- a/www/skins/prod/jquery.main-prod.js +++ b/www/skins/prod/jquery.main-prod.js @@ -183,32 +183,33 @@ function checkBases(bool) function checkFilters(save) { var danger = false; - var search = {}; - var adv_box = $('form.phrasea_query .adv_options'); - search.bases = {}; - search.fields = {}; - search.dates = {}; - search.status = {}; - var scroll = $('.field_filter select').scrollTop(); + var search = { + bases: {}, + fields: {}, + dates: {}, + status: {} + }; - var switches = $('#sbasfiltercont .field_switch'); + var adv_box = $('form.phrasea_query .adv_options'); + var container = $("#sbasfiltercont"); + var fieldsSelect = $('.field_filter select', container); + + var scroll = fieldsSelect.scrollTop(); + var switches = $('.field_switch', container); switches.filter('.was').removeClass('was'); - switches.filter('option:selected, input:checked').addClass('was'); - $('#sbasfiltercont select option:selected:not(".default-selection")').removeAttr('selected').selected(false); + $('select option:selected:not(".default-selection")', container).removeAttr('selected').selected(false); - $('#sbasfiltercont select option.field_switch').addClass("hidden"); + $('select option.field_switch', container).addClass("hidden"); - $('#sbasfiltercont input.field_switch:checked').removeAttr('checked'); + $('input.field_switch:checked', container).removeAttr('checked'); - $('#sbasfiltercont input.field_switch:checkbox').parent().hide(); + $('input.field_switch:checkbox', container).parent().hide(); $('.field_filter, .status_filter, .date_filter', adv_box).removeClass('danger'); - var adv_box = $('form.phrasea_query .adv_options'); - $.each($('.sbascont', adv_box), function(){ var sbas_id = $(this).parent().find('input[name="reference"]').val(); search.bases[sbas_id] = new Array(); @@ -224,7 +225,7 @@ function checkFilters(save) if(checked.length>0) { - var sbas_fields = $('#sbasfiltercont .field_' + sbas_id).removeClass("hidden"); + var sbas_fields = $('.field_' + sbas_id, container).removeClass("hidden"); sbas_fields.filter('option').show().filter('.was').removeClass('was').attr('selected', 'selected').selected(true); sbas_fields.filter(':checkbox').parent().show().find('.was').attr('checked','checked').removeClass('was'); } @@ -234,7 +235,7 @@ function checkFilters(save) }); }); - search.fields = (search.fields = $('.field_filter select').val()) !== null ? search.fields : new Array; + search.fields = (search.fields = fieldsSelect.val()) !== null ? search.fields : new Array; var reset_field = false; $.each(search.fields, function(i,n){ @@ -243,7 +244,7 @@ function checkFilters(save) }); if(reset_field) { - $('#sbasfiltercont select[name="fields[]"] option:selected').removeAttr('selected').selected(false); + $('select[name="fields[]"] option:selected', container).removeAttr('selected').selected(false); search.fields = new Array; } @@ -271,7 +272,8 @@ function checkFilters(save) $('.date_filter', adv_box).addClass('danger'); } - $('.field_filter select').scrollTop(scroll); + fieldsSelect.scrollTop(scroll); + if(save===true) setPref('search',JSON.stringify(search));