SumoSelect 处理事件不适用于 Android 设备

Posted

技术标签:

【中文标题】SumoSelect 处理事件不适用于 Android 设备【英文标题】:SumoSelect handling events not work on android devices 【发布时间】:2018-08-16 02:17:24 【问题描述】:

我在我的选择标签上使用SumoSelect v3.0.3(它提供多选选项),但我在处理 android 设备上的事件时遇到了问题。关闭时选择标签alert()不出现。

只需要调用我的函数或在关闭相扑选择时触发。在 Android 和桌面上...

正确的解决方案可以在较旧的 3.0.2 版本中...

有一个工作小提琴:LINK - 在桌面上打开和关闭选择输入之后,您可以看到一个带有“下拉关闭!”的警报窗口文本,但在 android 设备上你不会...

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

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

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

在桌面 (Firefox/Chrome) 上它可以工作...有什么建议吗?

我在 javascript/jquery 方面很弱,但在以前的版本 (3.0.2) 中,我有自己的触发器 $(document).trigger('sumoCloseSelect'); 直接在 sumoselect.js 插件中,就像这样(最后一行):

                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');

(是的,很脏)然后在我的 main.js 文件中:

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

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

但是这个解决方案也不适用于 android...

编辑:

我尝试将以下内容添加到 sumoselect js 文件 jQuery.myFunction();(如上一个)并在自己的 js 中定义它

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

同样适用于台式机,但不适用于 Android...

EDIT2:

使用初始化设置 forceCustomRendering: true 所有触发器都可以工作...但我希望在 false 上设置此设置(默认)

【问题讨论】:

【参考方案1】:

您为什么要尝试使用相扑插件来捕获触发器?你到底想做什么?

例如你可以这样做

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

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

【讨论】:

我需要关闭事件而不是更改的解决方案。

以上是关于SumoSelect 处理事件不适用于 Android 设备的主要内容,如果未能解决你的问题,请参考以下文章

Jquery Datatables 事件处理程序不适用于分页

内容安全策略 nonce 不适用于事件处理程序属性

.net 4.7.1 C# OCX 事件处理程序适用于 win10x 86/64,不适用于 win7/8 x86/64

C# 在带有 Graphics.DrawLine() 的 PictureBox 上绘制不适用于 Paint 事件

谷歌地图不适用于 ionic cordova run android

垂直滚动不适用于 HammerJS 和 Angular2