YUI3自动完成:如何从select事件后获取值

时间:2014-04-18 10:15:26

标签: javascript autocomplete yui3 yahoo-finance

我正在使用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();
        });

    });

});

1 个答案:

答案 0 :(得分:0)

您必须将事件侦听器附加到AutoComplete实例而不是Node。可以通过AutoComplete的{​​{1}}成员访问ac个实例,然后您就可以像以前一样附加事件回调:

Node

详细了解YUI AutoComplete tutorialAs a Plugin部分)了解详情。