2

我正在尝试触发自定义事件,该事件将延迟返回。

我在插件内部使用触发器,所以我不能只是这样做this.options.beforeOpen().done()......因为在这种情况下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 回答