6

I am using SumoSelect v3.0.3 on my select tag (It makes multiselect options), but I have a problem with handling events on Android devices. On close select tag alert()does not appear.

Just need ANY call my function or trigger on closing sumo select. On Android and desktop...

  • proper solution can be in older 3.0.2 version...

There is a working fiddle: LINK - open and close select input after that on a desktop you can see an alert window with 'Drop down closed!' text but on an android device you won't...

// .class pointing to <select> tag
$('.class').SumoSelect({placeholder: 'Select choice'});

$('select').on('sumo:closed', function(sumo) {

    alert("Drop down closed!");
});

On a desktop (Firefox/Chrome) it works... Any suggestions?

I am pretty weak in javascript/jquery but in previsious version (3.0.2) i had my own trigger $(document).trigger('sumoCloseSelect'); direct in sumoselect.js plugin like this (last line):

                showOpts: function () {
                var O = this;
                if (O.E.attr('disabled')) return; // if select is disabled then retrun
                O.is_opened = true;
                O.select.addClass('open');

                if(O.ftxt)O.ftxt.focus();
                else O.select.focus();

                // hide options on click outside.
                $(document).on('click.sumo', function (e) {
                    if (!O.select.is(e.target)                  // if the target of the click isn't the container...
                        && O.select.has(e.target).length === 0){ // ... nor a descendant of the container
                        if(!O.is_opened)return;
                        O.hideOpts();
                        $(document).trigger('sumoCloseSelect');

(yes very dirty) and after that in my main.js file:

$(document).on('sumoCloseSelect', function(e) {

    alert('Drop down closed!');
    ...

But this solution isn't working on android too...

EDIT:

I tried to add the following to sumoselect js file jQuery.myFunction(); (like in prev ex.) and in own js define it

    jQuery.myFunction= function(){
        alert('yep!');
    };

and again for desktops, it works but not for Android...

EDIT2:

with init setting forceCustomRendering: true all triggers work... but I want this setting on false (default)

Nimeshka Srimal
  • 8,012
  • 5
  • 42
  • 57
Lajdák Marek
  • 2,969
  • 8
  • 29
  • 58

1 Answers1

0

Why are you trying to catch the trigger with sumo plugin? What do you want to do exactly?

For example you can do it like that

$(document).on('change', 'select.class', function(sumo) {
  alert("Drop down closed!");
});

https://jsfiddle.net/5dy8j54n/14/