Skip to main content

Search and Top Navigation

#15247 new bug ()

Opened October 27, 2017 09:57AM UTC

Last modified November 01, 2018 04:36PM UTC

Disabled Selectmenus: calling refresh repeatedly makes it slower and slower

Reported by: Fearodin Owned by:
Priority: minor Milestone: none
Component: ui.selectmenu Version: 1.12.1
Keywords: Cc:
Blocked by: Blocking:
Description

Following up on case #15078:

The bug was fixed in the case above, but only for selectmenu's which are enabled.

The fix contains the creation of a new remove-eventhandler in the widget-function bindRemoveEvent().

Here, the _untrackClassesElement-Handler is added on-remove.

But the call misses the suppressDisabledCheck-Flag, which makes it useless for disabled selectmenus.

Changing the Call to the following, fixes the bug:

function bindRemoveEvent()
            {
                options.element.each(function (_, element)
                {
                    var isTracked = $.map(that.classesElementLookup, function (elements)
                    {
                        return elements;
                    })
                    .some(function (elements)
                    {
                        return elements.is(element);
                    });

                    if (!isTracked)
                    {
                        that._on(true, $(element), {
                            remove: "_untrackClassesElement"
                        });
                    }
                });
            }
Attachments (0)
Change History (3)

Changed October 25, 2018 01:40PM UTC by scottgonzalez comment:1

component: ui.coreui.selectmenu

Changed October 25, 2018 01:41PM UTC by scottgonzalez comment:2

#15248 is a duplicate of this ticket.

Changed November 01, 2018 04:36PM UTC by rjollos comment:3

description: \ \ Following up on case #15078: \ \ The bug was fixed in the case above, but only for selectmenu's which are enabled. \ \ The fix contains the creation of a new remove-eventhandler in the widget-function 'bindRemoveEvent()'. \ \ Here the '_untrackClassesElement' - Handler is added on-remove. But the call misses the 'suppressDisabledCheck'-Flag, which makes it useless for disabled selecmenus. \ \ Changing the Call to the following, fixes the bug: \ \ \ {{{ \ function bindRemoveEvent() \ { \ options.element.each(function (_, element) \ { \ var isTracked = $.map(that.classesElementLookup, function (elements) \ { \ return elements; \ }) \ .some(function (elements) \ { \ return elements.is(element); \ }); \ \ if (!isTracked) \ { \ that._on(true, $(element), { \ remove: "_untrackClassesElement" \ }); \ } \ }); \ } \ }}} \ \ Following up on case #15078: \ \ The bug was fixed in the case above, but only for selectmenu's which are enabled. \ \ The fix contains the creation of a new remove-eventhandler in the widget-function `bindRemoveEvent()`. \ \ Here, the `_untrackClassesElement`-Handler is added on-remove. \ \ But the call misses the `suppressDisabledCheck`-Flag, which makes it useless for disabled selectmenus. \ \ Changing the Call to the following, fixes the bug: \ \ \ {{{#!js \ function bindRemoveEvent() \ { \ options.element.each(function (_, element) \ { \ var isTracked = $.map(that.classesElementLookup, function (elements) \ { \ return elements; \ }) \ .some(function (elements) \ { \ return elements.is(element); \ }); \ \ if (!isTracked) \ { \ that._on(true, $(element), { \ remove: "_untrackClassesElement" \ }); \ } \ }); \ } \ }}} \ \