Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新加载后,SumoSelect不会打开_Javascript_Jquery_Plugins_Multi Select_Sumoselect.js - Fatal编程技术网

Javascript 重新加载后,SumoSelect不会打开

Javascript 重新加载后,SumoSelect不会打开,javascript,jquery,plugins,multi-select,sumoselect.js,Javascript,Jquery,Plugins,Multi Select,Sumoselect.js,我正在使用我的网络中的输入 问题是——若你们打开第二个sumoselect,然后你们想先打开它——那个么点击第一个,他就不会打开了 我的代码: $('.country').SumoSelect({placeholder: 'first'}); $('.anotherSumo').SumoSelect({placeholder: 'second'}); $('.anotherSumo').on('sumo:closing', function(e) { $('.country').empt

我正在使用我的网络中的输入

问题是——若你们打开第二个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'});
});
$('.country').SumoSelect({placeholder: 'first'});
$('.anotherSumo').SumoSelect({placeholder: 'second'});

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

    var count = $('.country option').length;

    for(var i = 0; i < count; i++) {
        $('.country')[0].sumo.remove(0);    
    }

    $('.country')[0].sumo.add('newValue','newValue', 0);
});
这是小提琴。只需打开第二个选择,然后尝试打开第一个-点击2次。按相反的顺序-第一次点击打开第一个相扑,然后第二次点击第二个相扑,一切正常

我正在尝试添加$country.triggerclick;重新加载后,但什么也没有


我需要知道如何在第二次单击时以任何方式打开第一个相扑,但在相扑选择关闭时使用功能触发器-因为第一个用户做出了选择,如果用户完成了选择选项,他将使用打开另一个或仅关闭来关闭相扑选择。我认为您尝试实现的方式不可行,也不可能实现因为当您单击第一个按钮打开它时,会调用第二个下拉关闭按钮,再次创建第一个按钮。因此,当所有新绑定添加到第一个下拉列表中时,第一个下拉列表的实际单击将丢失

你必须改变插件中的代码,如果你想实现它,这不是一个好的做法。您还可以使用$'.sumo_country'.addClass'open'.attr'aria-expanded',true'强制第一个下拉列表显示选项;但是,要关闭下拉列表,您必须第一次单击两次

更改任何依赖于其他下拉列表的下拉列表值的正确可行方法是使用下拉列表的更改功能


在您的情况下,无论何时从第二个下拉列表中选择或取消选择该值,您都必须更改数据。这是一个工作示例。正如您在评论中提到的,您希望在从第二个选择后更改第一个选择,而不仅仅是在关闭它之后。 .关于“改变”。。。看起来很有意思


所以我想。。。有办法做到这一点!我非常需要这个-如果你有一些通知或任何欢迎你的东西

我的代码:

$('.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'});
});
$('.country').SumoSelect({placeholder: 'first'});
$('.anotherSumo').SumoSelect({placeholder: 'second'});

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

    var count = $('.country option').length;

    for(var i = 0; i < count; i++) {
        $('.country')[0].sumo.remove(0);    
    }

    $('.country')[0].sumo.add('newValue','newValue', 0);
});
工作小提琴:


注意:如果您需要正确的发送表单输入,或者您需要在SelectByOwnWay中添加/删除选项元素

改变相扑:接近相扑:打开就成功了。那么相扑的开场有什么问题吗?根据你的代码,我不这么认为。相扑:打开对我来说是个问题,因为用户必须首先选择选项,然后是相扑关闭,然后我更改值…它不工作。。。是,点击后相扑开始,但没有任何更改。。。没有“newValue”。。。你们的代码的结果就像只有init和sumoselect一样…好吧,对不起,那个么我认为你们的要求对我来说并没有意义。如果用户未在sumo2中选择任何内容,为什么要更改sumo1的内容?我认为内容应该根据选择而改变,这个解决方案适合需要。我很快就看到了你的问题,所以我看不出你的答案是好主意,但在我的情况下,很遗憾无法使用,因为在网络上有3个选择选项-国家,区域和位置,它们是连接在一起的。用户触发的“更改”事件会触发我的代码,所有输入选项都会更改。。。