对于这个问题,可能有一个简单的解决方案,但我不能弄清楚。从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/
我将非常感谢任何人的帮助:)
发布于 2020-01-28 17:30:34
如果我理解正确的话,问题出在将参数转换为基于对象的dropdown模块。看一下源代码,在第26行,我们可以看到:
$.fn.dropdown = function(parameters) {
...这是dropdown功能首次声明的地方,这样您就可以调用$('selector').dropdown();。然后在50行左右我们可以看到:
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.dropdown.settings, parameters)
: $.extend({}, $.fn.dropdown.settings),它查看“参数”的组成,并决定如何解释它--基本上,如果参数是JS对象,则通过合并到下拉缺省值中使用它,否则单独使用缺省值。
返回到您的测试,在以下情况下:
$('.ui.dropdown').dropdown('show',{
maxSelections:2
});您传入了两个参数,并且只在$.fn.dropdown函数中使用了第一个参数,因此根据您的结果,maxSelections选项将被忽略。
在以下情况下:
$('.ui.dropdown').dropdown({
maxSelections:2
});您提供的参数确实是一个普通对象,因此它具有所需的结果。
当然,这是对你所看到的内容的技术解释,但它仍然留下了一个问题:“我如何在文档中找到它?”我相信文档需要迎头赶上--我希望FUI团队能尽快解决这个问题,因为他们正在做的工作是高质量的,而文档正在破坏他们的工作,IMHO。
同样作为一个观点,我认为转向JS对象参数方法是正确的方向。因此,尽管对于任何来自语义UI背景的人来说,这可能是一个“令人震惊的变化”,但当它应用于所有FUI组件时,它将提供一种更标准的方法。我希望随着时间的推移,所有组件都会遇到这种变化。
https://stackoverflow.com/questions/59944750
复制相似问题