2014-04-18 8 views
0

YUI3을 사용하여 Yahoo Finance API에서 주식 정보를 얻기 위해 애플리케이션을 구현 중입니다. 자동 완성 목록을 완료했지만 사용자가 마우스를 클릭하거나 목록에서 Enter를 누른 후 값을 가져 오는 방법에 문제가 있습니다.YUI3 자동 완성 : 선택 이벤트 발생 후 가치를 얻는 방법

여기 내 코드입니다. 문제는 mynode.after (...)가 오류를 발생 시킨다는 것입니다. 그러나 왜 그리고 어떻게 수정해야하는지 전혀 알지 못합니다. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

YUI().use('autocomplete', function (Y){ 
    mynode = Y.one('#comsymbol'); 
    mynode.plug(Y.Plugin.AutoComplete, { 
     activateFirstItem: true, 
     enableCache: false, 
     source: function(query, callback) { 
      $.ajax({ 
       dataType: "jsonp", 
       cache: true, 
       type: "GET", 
       jsonp: "callback", 
       jsonpCallback: "YAHOO.Finance.SymbolSuggest.ssCallback", 
       data: {query:query}, 
       url: "http://autoc.finance.yahoo.com/autoc", 
      }); 

      YAHOO.Finance.SymbolSuggest.ssCallback = function(data) { 
       var result = data.ResultSet.Result; 
       var lists = new Array(); 
       for(var i = 0; i < result.length; i++) { 
        var sb = result[i].symbol; 
        var nm = result[i].name; 
        var xch = result[i].exch; 
        var all = sb + ", " + nm + " (" + xch + ")"; 
        lists[i] = all; 
       } 
       callback(lists); 
      }; 
     }, 
     } 

     mynode.after('select', function (e) { 
      getStockInfo(); 
     }); 

    }); 

}); 

답변

0

당신은 Node보다는 AutoComplete 인스턴스에 이벤트 리스너를 연결해야합니다. AutoComplete 인스턴스는 Nodeac 구성원을 통해 액세스 할 수 있습니다, 당신은 전에 있었다 거기에서 당신은 단순히 이벤트 콜백을 첨부 할 수

mynode.ac.after('select', function (e) { 
    getStockInfo(); 
}); 

은 자세한 내용은 YUI AutoComplete tutorial 봐 (As a Plugin 섹션 특히)를 타고 .