我正在使用YUI3实现从Yahoo Finance API获取股票信息的应用程序。我已经完成了自动完成列表,但是在用户单击鼠标或按列表上的输入后如何获取值时遇到问题。
这是我的代码。问题是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 :(得分:0)
您必须将事件侦听器附加到AutoComplete
实例而不是Node
。可以通过AutoComplete
的{{1}}成员访问ac
个实例,然后您就可以像以前一样附加事件回调:
Node
详细了解YUI AutoComplete tutorial(As a Plugin部分)了解详情。