2012-10-28 2 views
2

jquery UI 자동 완성 1.9.1의 소스 옵션에 대해 정의한 함수에서 jquery UI 자동 완성 옵션에 액세스하려고합니다.Jquery ui 자동 완성 1.9 소스 함수 액세스 옵션

이 함수 내에서 "this"를 검사하여 this.options를 사용하여 옵션에 액세스 할 수 있음을 발견했습니다. 이것이 올바른 방법인지 궁금해해서 내부 사양에 의존하지 않습니까?

답변

0

이렇게 만들었습니다. 더 쉬운 방법이 있어야하지만 찾지 못했습니다.

<script> 
    $('#element').autocomplete({ 
     self: null, 
     myOption: 'test', 
     source: function (request, response) { 
      self = this; 
      var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); 
      response($('#combobox').children("option").map(function() { 
       var text = $(this).text(); 
       if (this.value && (!request.term || matcher.test(text))) 
        return { 
         label: text.replace(
          new RegExp(
          "(?![^&;]+;)(?!<[^<>]*)(" + 
          $.ui.autocomplete.escapeRegex(request.term) + 
          ")(?![^<>]*>)(?![^&;]+;)", "gi" 
          ), "<strong>$1</strong>"), 
         value: text 
        }; 
      })); 
     }, 
     select: function (event, ui) { 
      console.log(self.options.myOption); 
     } 
    }); 
</script> 
<html> 
    <input type="text" id="element" /> 
    <select id="combobox"> 
     <option value="t1">Python</option> 
     <option value="t2">PHP</option> 
     <option value="t3">ASP.NET</option> 
     <option value="t4">C++</option> 
     <option value="t5">Ruby</option> 
    </select> 
</html> 

는 힌트 바이올린 http://jsfiddle.net/f7qvu/1/

을에 here

체크 그것을 발견