如何實作jQuery 中的 callback function

今天剛好有做到, 紀錄一下作法:

$T.query("{{keyword}}", function(query_results){
    // do something...
});

然後在$T 的singleton 中, 定義一個query() 函式, 大致上寫法如下:
....

query: function(keyword, callback) {
            q_url=$T.request_uri + '?' + $T.encodeQueryData({
                'mkt': 'tw',
                'Partner': $T.partner_pm,
                'outputCharEnc': $T.outputCharEnc,
                'maxCount': $T.maxCount,
                'Keywords':  keyword,
                'rnd': Math.random() + Date.parse(new Date()),
                'serveUrl': $T.ServeUrl
            });
           
           
            $T.callback = callback;
           
            $T.createScript(q_url);
            $T.interval = setInterval("$T.wait_yahoo_ads()", 500);
        },


然後定義一個 wait_yahoo_ads() 函式, 裡面會去check $T 是否有定義callback, 有則執行


        wait_yahoo_ads: function() {
            if(zSr !== undefined) {
                clearInterval($T.interval);
                $T.interval = undefined;
               
                if ($T.callback) {
                var query_results = $T.parse_yahoo_ads(zSr);
                $T.callback(query_results);
                }
                //$T.show_yahoo_ads(zSr);            
            }
        }


留言

熱門文章