Ich verwende den folgenden Code ein:.top fehlt in jquery TypeScript-Definitionsdateien?
$('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top });
Typoskript gibt mir eine Fehlermeldung,:
The property 'top' does not exist on value of type 'Object'
Ich vermute, etwas aus der jQuery-Definitionsdatei fehlt. Hat jemand anderes dieses Problem gesehen oder ist das etwas, das normalerweise nicht mit jQuery verwendet wird? Es ist etwas, was ich vorher nicht gesehen habe.
Für weitere Informationen. Hier ist der Code, wo diese verwendet werden:
$.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;
};
konnte nicht Sie 'Offset(): {top: Zahl; links: Nummer; }; 'Verwenden Sie das'?: 'optional in der TS-Definition? –
@mcpDESIGNS Ich dachte, dass es tatsächlich funktionierte, aber ich benutzte immer noch meine bearbeitete jquery.d.ts, die die modifizierte Deklaration hatte. Anyway, no, macht das 'offset' Mitglied optional bedeutet nur, dass es nicht implementiert werden muss, um eine gültige Implementierung der' JQuery' Schnittstelle zu haben. Es scheint nicht, dass Sie damit Mitglieder verstecken können; Wenn Sie versuchen, es der Datei jquery.d.ts hinzuzufügen, verhindern Sie, dass die anderen Überladungen von offset gültig sind. Außerdem müssten Sie es als "Offset" deklarieren. :() => {top: nummer; links: Nummer; }; 'um es sogar syntaktisch gültig zu haben. – nxn