-2

jQueryプラグインを再帰的に呼び出すにはどうすればよいですか? poll.jsmain.php 内に名前が付けられたファイルがあります。ログインしたショップの新しい注文をキャッチするために、pollcallingという名前のプラグインを作成しました。関数は、新しい注文が登録されているかどうかを 15 秒ごとに確認する必要があります。再帰的に呼び出す必要があります。プラグインを次のようにしました。order_provider.phppollpoll

(function($){
    $.fn.poll = function (shopid){
           $.getJSON("order_provider.php?looking=all&shopid="+shopid, function(data){
              // Do Something
           }).done(function(){
              // Do Something
              setTimeout(poll(shopid),15000)
           })
    }
 })(jQuery);

しかし、それは一度しか機能しません!

4

2 に答える 2

0

実装上の問題はほとんどありません

  1. setTimeout には、引数として関数参照が必要です

作業バージョンは次のようになります

(function ($) {


    $.fn.poll = function (shopid) {
        function poll() {
            $.getJSON("order_provider.php?looking=all&shopid=" + shopid, function (data) {
                // Do Something
            }).done(function () {
                // Do Something
                setTimeout(poll, 15000)
            })
        }

        poll();
    }
})(jQuery);

注: 完全なプラグインのようにするつもりはありません...既存のバージョンのいくつかの問題を修正しているだけです

于 2013-10-21T08:12:08.213 に答える