Плагин sexy-combobox не работает внутри диалога jquery - PullRequest
1 голос
/ 16 сентября 2010

Я пытаюсь использовать этот плагин, который превращает список выбора в поле со списком, в котором пользователь может ввести свой выбор, в дополнение к функциональности списка выбора.

http://vladimir-k.blogspot.com/2009/02/sexy-combo-jquery-plugin.html

Проблема, с которой я сталкиваюсь, заключается в том, что когда список выбора находится внутри диалога jquery,дольше имеет выпадающий функционал.Функция автозаполнения по-прежнему работает, если вы нажмете клавишу Tab или введете, набрав первые несколько букв известного значения, но поле с полями параметров не появится.Кто-нибудь еще сталкивался с этим?Есть ли известное решение / обходной путь?

от site.master

<link href="<%= Url.Content("~/Content/sexy-combo.css") %>" rel="stylesheet" type="text/css" />
<link href="<%= Url.Content("~/Content/sexy/sexy.css") %>" rel="stylesheet" type="text/css" />
<link href="<%= Url.Content("~/Content/custom/custom.css") %>" rel="stylesheet" type="text/css" />

<script src="<%= Url.Content("~/Scripts/jquery.sexy-combo.min.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.bgiframe.min.js") %>" type="text/javascript"></script>  

из EditProduct.ascx (загружен внутри диалога)

<script type="text/javascript">
    $('#subCategories').sexyCombo();
</script>

<%: Html.DropDownList("CategoryId", new SelectList(Model.ProductCategories, "CategoryId", "CategoryName", Model.Product.CategoryId), new{ id="subCategories"}) %>

Ответы [ 3 ]

1 голос
/ 17 сентября 2010

Я нашел решение по некоторым комментариям на кодовой странице Google.Примерно в строке 194 сценария jquery.sexy-combo.js есть строка, подобная этой:

    this.singleItemHeight = this.listItems.outerHeight();

Проблема в том, что внутри диалога jquery по какой-либо причине listItems.outerHeight ();возвращает 0 каждый раз.Поэтому, чтобы исправить это и получить правильное поведение, кто-то порекомендовал установить singleItemheight в произвольное значение, если оно было установлено в 0, например так:

    if (this.singleItemHeight == 0)
    {
        this.singleItemHeight = 20;
    }

Спасибо за ваши предложения, я действительно не хотел иметьпереписать свой собственный плагин, потому что у меня слишком много на ходу, как есть.

0 голосов
/ 17 сентября 2010

Мы также использовали этот виджет на нашем сайте. С тех пор мы отказались от его использования в пользу пользовательского плагина jquery.ui, который использует jquery.ui.button и, в частности, кнопки. У плагина sexycombo был ряд проблем, которые у нас не работали.

Я бы посоветовал посмотреть на свои собственные; это было на самом деле довольно просто.

http://jqueryui.com/demos/button/#splitbutton

Эти страницы дают хорошее начало, включая необходимую разметку. Он может не удовлетворять все, что вам нужно, но вы можете легко реализовать функцию автозаполнения с помощью ввода рядом с кнопкой.

0 голосов
/ 17 сентября 2010

Похоже, что плагин использует более старую версию JQuery и не поддерживается активно. Есть ссылка на ветку / альтернативу со страницы Google Code: http://code.google.com/p/sexy-combo/

Кроме того, вы можете посмотреть на виджет автозаполнения JQueryUI: http://jqueryui.com/demos/autocomplete/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...