Я хочу сделать замену <select>
специальным форматированием текста с использованием jQuery UI Selectmenu
.`format` callback в новейшей версии jQuery UI selectmenu
Третьих и пятые выбирает в этой скрипке являются хорошими примерами того, что я пытаюсь достичь:
http://jsfiddle.net/fnagel/GXtpC/
В скрипке, есть определенная функция addressFormatting()
, которая принимает первоначальный вариант текст и возвращает HTML вывода, который будет использоваться для рендеринга selectmenu. Эта функция передается в качестве обратного вызова в инициализации selectmenu:
$('select').selectmenu({
format: addressFormatting
});
Я использую jQuery UI Selectmenu 1.11.4
. Проблема в том, что опция обратного вызова format
отсутствует в этой версии.
Это часть кода из jQuery UI Selectmenu version 1.5.0pre
, используемых в предоставленном скрипкой:
$.widget("ui.selectmenu", {
options: {
appendTo: "body",
typeAhead: 1000,
style: 'dropdown',
positionOptions: null,
width: null,
menuWidth: null,
handleWidth: 26,
maxHeight: null,
icons: null,
format: null, // <<<<<<<<<<<< FORMAT OPTION IS PRESENT <<<<<<<<<<<<
escapeHtml: false,
bgImage: function() {}
},
И это часть кода из более новой версии, которую я использую:
var selectmenu = $.widget("ui.selectmenu", {
version: "1.11.4",
defaultElement: "<select>",
options: {
appendTo: null,
disabled: null,
icons: {
button: "ui-icon-triangle-1-s"
},
position: {
my: "left top",
at: "left bottom",
collision: "none"
},
width: null,
// callbacks
change: null,
close: null,
focus: null,
open: null,
select: null
},
format
вариант здесь нет, а его использование при инициализации не влияет.
В методе API documentation существует метод _renderItem()
, имя которого предполагает, что оно может использоваться для добавления пользовательского форматирования к выделенному элементу, но оно имеет личную область видимости, поэтому я не могу использовать его вне виджета. Существует также общедоступный метод create()
, но я не уверен, могу ли я его использовать или использовать, чтобы изменить структуру созданного selectmenu.