私は、次のコードを使用しています:私は何かがjQueryの定義ファイルから欠落している推測していjquery TypeScript定義ファイルに.topがありませんか?
The property 'top' does not exist on value of type 'Object'
:
$('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top });
活字体は言ってくれたエラーメッセージを与えています。他の誰かがこの問題を見たことがありますか、これは通常jQueryで使われていないものですか?私が以前見たことのないものです。
詳細については、
$.fn.buildTableOfContent = function() {
"use strict";
var h2 = this.find('h2');
if (h2.length > 0) {
var h1 = this.find('h1:first');
if (h1.length === 0) {
h1 = this.prepend('<h1>Help</h1>').children(':first');
}
var menu = h1.wrap('<div class="h1 with-menu"></div>')
.after('<div class="menu"><img src="/Content/images/menu-open-arrow.png" width="16" height="16"><ul></ul></div>')
.next().children('ul');
h2.each(function (i) {
this.id = 'step' + i;
menu.append('<li class="icon_down"><a href="#step' + i + '">' + $(this).html() + '</a></li>');
});
menu.find('a').click(function (event) {
event.preventDefault();
$('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top });
});
}
return this;
};
を試してみてください、あなたは ')(オフセット行うことができませんでした:{トップ:数;?左:番号。 }; 'TS定義の'?: 'オプションを使用していますか? –
@mcpDESIGNS実際にはうまくいったと思っていましたが、変更された宣言を持つ私の編集したjquery.d.tsをまだ使っていました。とにかく、 'offset'メンバをオプションにすることは、' JQuery'インタフェースの有効な実装を持たせるために実装する必要がないことを意味します。メンバーを非表示にすることはできません。 jquery.d.tsファイルに追加しようとすると、 'offset'の他のオーバーロードが有効にならないようになります。また、オフセットとして宣言する必要がありますか? :()=> {トップ:数字;左:番号。 }; 'それが構文的には有効であっても。 – nxn