焦点显示列表上的小部件并删除列表

时间:2013-03-25 06:27:28

标签: jquery html css widget

我有一个小部件,它是输入和按钮的包装。我想显示输入焦点和按钮点击的下拉菜单。它在按钮点击时工作正常,输入工作只有一次不能正常工作。即使你选择一个选项它不工作....如果你使输入模糊然后它将工作正常,直到你选择的东西或使用按钮点击....下面是我的代码.....任何工作围绕PLZ。 ................................

  input = $("<input>")
                .appendTo(wrapper)
                .val(value)
                .attr("title", "")
                .autocomplete({
                    delay: 0,
                    minLength: 0,
                    appendTo: wrapper,
                    source: function (request, response) {
                        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");

                        response(select.children("option").map(function () {
                            var text = $(this).text();
                            if (this.value && (!request.term || matcher.test(text)))
                                return {
                                    label: text,
                                    value: text,
                                    option: this
                                };
                        }));

                    },

                .focus(function () {                    
                    $(".ui-combobox").addClass("focus");                    

                    if (wasOpen) {
                        return;
                    }

                    input.autocomplete("search", "");
                })

                .blur(function () {                 
                    $(".ui-combobox").removeClass("focus");
                });

            // creating the anchor button
            $("<button></button>")
                .attr("tabIndex", -1)
                .addClass("br-r")
                .appendTo(wrapper)
                .mousedown(function () {
                    wasOpen = input.autocomplete("widget").is(":visible");
                })
                .click(function () {
                    input.focus();

                    if (wasOpen) {
                        return;
                    }

                    input.autocomplete("search", "");                   
                });
        },

以上只是片段处理所需的功能.........

1 个答案:

答案 0 :(得分:0)

尝试输入

input = $("<input>")
                .appendTo(wrapper)
                .val(value)
                .attr("title", "")
                .autocomplete({
                    delay: 0,
                    minLength: 0,
                    appendTo: wrapper,
                    source: function (request, response) {
                        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");

                        response(select.children("option").map(function () {
                            var text = $(this).text();
                            if (this.value && (!request.term || matcher.test(text)))
                                return {
                                    label: text,
                                    value: text,
                                    option: this
                                };
                        }));

                    }})

                .focus(function () {                    
                    $(".ui-combobox").addClass("focus");                    

                    if (wasOpen) {
                        return;
                    }

                    input.autocomplete("search", "");
                })

                .blur(function () {                 
                    $(".ui-combobox").removeClass("focus");
                });