2

カスタムイベントをトリガーしようとしています。これにより、遅延が返されます。

プラグイン内でtriggerを使用しているので、実行できません...この場合、クライアント側のthis.options.beforeOpen().done()insideはオプションオブジェクトを返すためです。beforeOpen()$(this)

$me.trigger('beforeOpen').
                        done(function(){
                            me._open();
                        })
                        .fail(function(){
                            me.state = 'closed';
                            $me.trigger('ifNotOpened.' + me.name);
                            $me.trigger('ifOpenedOrNot.' + me.name);
                        })

私のカスタムイベントの内部

$me.on( 'beforeOpen', function() {
                        var d = $.Deferred();
                        setTimeout(function(){ d.resolve() },1000);
                        return d.promise();
                    },
4

1 に答える 1

0

私はそれを行う方法を理解しました:

var deferred = me.options.beforeOpen.call( $me );
    deferred
        .done(function(){...})
        .fail(function(){...})

それが誰かを助けることを願っています。

于 2012-11-09T08:23:01.190 に答える