Fomantic-UI-使用设置初始化下拉列表

问题描述 投票:0回答:1

可能有一个简单的解决方案,但是我无法弄清楚。从Semantic-UI转到Fomantic-UI后,发生了更改,需要我的帮助。

初始化我要显示的下拉菜单时,此方法较早起作用:

$('.ui.dropdown').dropdown('show',{                                 
  maxSelections:2  
});

但是似乎忽略了设置(在这种情况下为maxSelections)。

如果我使用:

$('.ui.dropdown').dropdown({                                    
    maxSelections:2  
});

设置工作正常。

正在工作https://jsfiddle.net/ruznv83a/2/

不起作用https://jsfiddle.net/ruznv83a/1/

我将不胜感激:)

javascript semantic-ui fomantic-ui
1个回答
0
投票

如果我理解正确,问题就出在将基于对象的参数传递到下拉模块中。查看源代码,在第26行周围,我们看到:

$.fn.dropdown = function(parameters) {
...

这是首次宣布下拉功能的位置,因此您可以调用$('selector')。dropdown();。然后在第50行,我们看到:

settings = ( $.isPlainObject(parameters) )
    ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
    : $.extend({}, $.fn.dropdown.settings),

正在查看“参数”的构成并决定如何解释它-基本上,如果参数是JS对象,则通过合并下拉列表默认值来使用它,否则默认值将单独使用。

在以下情况下返回您的测试:

$('.ui.dropdown').dropdown('show',{                                 
  maxSelections:2  
});

您传入了2个参数,并且$ .fn.dropdown函数仅使用第一个参数,因此根据您的结果,将忽略maxSelections选项。

在以下情况下:

$('.ui.dropdown').dropdown({                                    
    maxSelections:2  
});

您提供的参数确实是一个普通对象,因此具有所需的结果。

这是对您所看到的当然的技术解释,但是仍然存在一个问题:“我将如何在文档中找到它?”我相信这些文档还有很多工作要做-我希望FUI团队能够尽快掌握这一点,因为他们所做的工作质量很高,文档正在破坏他们的工作,恕我直言。

此外,我认为转向JS对象参数方法是正确的方向。因此,尽管这对于来自语义UI背景的任何人来说都是一个“突破性的改变”,但当将其应用于所有FUI组件时,它将提供更标准的方法。我希望随着时间的推移会遇到所有组件的这种变化。

© www.soinside.com 2019 - 2024. All rights reserved.