可能有一个简单的解决方案,但是我无法弄清楚。从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/
我将不胜感激:)
如果我理解正确,问题就出在将基于对象的参数传递到下拉模块中。查看源代码,在第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组件时,它将提供更标准的方法。我希望随着时间的推移会遇到所有组件的这种变化。