4

有人可以解释一下吗?我意识到 jQuery 接口是预定义的,但 JQueryStatic 是什么?

我有以下内容:

(function($)
{

    $.fn.disableBt = function()
    {
        $(this).attr('disabled', true);
        if ($.browser.msie && $.browser.version < 9)
        {
            $(this).addClass('disabled');
        }
    }

})(jQuery);

我可以让 typescript 了解这一点的唯一方法是将它添加到 jQuery 界面中,如下所示:

    disableBt();
}

我尝试将它添加到 jQueryStatic 但它似乎没有工作:

interface JQueryStatic {
  modal( options );
  disableBt();
}

这是在我的模式中定义选项的方式:

$.modal.defaults = {
    content: false,
    useIframe: false,
    ...
    ...
var settings = $.extend({}, $.modal.defaults, options),
4

1 回答 1

8

是否定义了“选项”(在模式(选项)中)?

JQueryStatic 接口具有静态方法(“$ 和 jQuery 本身的那些”)

JQuery 接口具有可以在 jQuery 元素上运行的成员,其中许多都返回 JQuery 本身以实现可链接性。

interface JQueryStatic {
    someAdditionalMethod(): any;
}
$.someAdditionalMethod();

interface JQuery {
    pluginMethod(): JQuery;
}
$("body").pluginMethod();

如果你的情况是这样的:

interface ModalDefaultOptions {
    content?: bool;
    useIframe?: bool;
}

interface JQueryStatic {
    modal: {
        defaults: ModalDefaultOptions;
    };
}

interface JQuery {
    disableBt(): void; // or :JQuery if you returned 'this' from the function 
}

$("#someButton").disableBt();
$.modal.defaults.content = false;
于 2012-10-29T06:10:03.383 回答