2013-03-25 133 views
0

我有一个小部件是输入和按钮的包装。我想显示在输入焦点和按钮点击下拉。它工作正常,按钮点击和输入工作正常后,只有一次不工作。即使你选择一个选项,它不工作....如果你使输入模糊,那么它会正常工作,直到你选择的东西或使用按钮单击....下面是我的代码.....任何工作周围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", "");     
       }); 
     }, 

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

+0

你没有把一个时期的句子。我不明白什么时候有效,什么时候没有。 – btevfik 2013-03-25 06:30:18

+0

你的html代码在哪里?你能告诉我们吗? – 2013-03-25 06:30:55

+0

@btevfik,看看现在对不起以前的副本... – mandava 2013-03-25 06:36:24

回答

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"); 
       });