Fomanti c -UI - Инициализация выпадающего меню с настройками - PullRequest
0 голосов
/ 28 января 2020

Возможно, есть простое решение для этого, но я не могу понять это. После перехода из Семанти c -UI в Фоманти c -UI произошло изменение, с которым мне нужна помощь.

При инициализации раскрывающегося списка, который я хочу показать, это работало раньше:

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

Но кажется, что настройки игнорируются (maxSelections в этом случае).

Если я использую:

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

настройки работают просто отлично.

Работает https://jsfiddle.net/ruznv83a/2/

Не работает https://jsfiddle.net/ruznv83a/1/

Буду признателен за любую помощь:)

1 Ответ

0 голосов
/ 28 января 2020

Если я правильно понимаю, проблема в переключении на объектную доставку параметров в выпадающий модуль. Глядя на исходный код, вокруг строки 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 -объектами является правильным направлением. Таким образом, хотя это может быть «потрясающим изменением» для любого, кто имеет опыт работы с семантией c -UI, он будет предлагать более стандартный подход при применении ко всем компонентам FUI. Я ожидаю встретить это изменение со всеми компонентами с течением времени.

...