我正在使用sumoselect关于我网络中的输入。
问题是 - 如果您打开第二个 sumoselect,然后您想打开第一个 - 所以单击第一个,他没有打开...
我的代码:
$('.country').SumoSelect({placeholder: 'first'});
$('.anotherSumo').SumoSelect({placeholder: 'second'});
$('.anotherSumo').on('sumo:closing', function(e) {
$('.country').empty();
$('.country').append('<option value="newValue">newValue</option>');
$('.country')[0].sumo.reload({placeholder: 'first'});
});
这是工作 fiddle 。只需打开第二个选择,然后尝试打开第一个 - 单击 2 次。以相反的顺序 - 第一次单击打开第一个相扑,然后第二次单击第二个相扑就一切正常了...
我尝试在重新加载后添加 $('country').trigger("click");
但什么也没有
https://jsfiddle.net/eqa9og2v/5/
我需要知道如何在第二次单击时以任何方式打开第一个相扑,但在 sumoselect 关闭时使用功能触发器 - 因为第一个用户做出选择,如果用户完成选择选项,则关闭 sumoselect (打开另一个或仅关闭)
最佳答案
我认为您尝试实现的方式不可行,并且不可能实现,因为当您单击第一个打开它时,会调用第二个下拉关闭,在其中您再次重新创建第一个。因此,随着所有新绑定(bind)都添加到第一个下拉列表中,第一个下拉列表的实际点击会丢失。
如果你想实现它,你必须更改插件中的代码,这不是一个好的做法。您还可以使用 $('.sumo_country').addClass('open').attr('aria-expanded', 'true'); 强制第一个下拉列表显示选项;
但再次要关闭下拉菜单,您必须第一次单击两次。
更改任何依赖于其他值的下拉值的正确且可行的方法是使用下拉列表的 change
函数。
在您的情况下,每当从第二个下拉列表中选择或取消选择值时,您都必须更改数据,这对您有用。
关于javascript - SumoSelect 重新加载后无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47476431/