我试图通过TypeScript/JQuery计算出DOM元素的位置和高度/宽度.在TypeScript之前我只是做了这样的事情:
function ActOnClick(itemClicked, loadPath) {
//sample code
var v1 = itemClicked.offset();
var v2 = itemClicked.width();
var v3 = itemClicked.height();
};
$(document).ready(function () {
$("#idCRM").click(function () {
ActOnClick($("#idCRM"), "/Widgets/GetCRM");
});
}
Run Code Online (Sandbox Code Playgroud)
其中idCRM是我的cshtml文档中的"部分"(但它可以是任何div等)
现在我试图将此代码移动到TypeScript中,但我在ActOnClick函数中期望从jQuery的$("#idCRM")进入什么类型?现在我选择'元素'但是a)它没有暴露宽度,高度等b)由$("#idCRM")引起的ActOnClick调用失败!
/// <reference path="../../ScriptsTS/jquery.d.ts" />
function ActOnClick(itemClicked: Element, loadPath: string) {
var v1 = itemClicked.offset(); <-- FAILS
var v2 = itemClicked.width(); <-- FAILS
var v3 = itemClicked.height(); <-- FAILS
};
$(document).ready(function () {
$("#idCRM").click(function () {
ActOnClick($("#idCRM"), "/Widgets/GetCRM"); <-- FAILS
});
}
Run Code Online (Sandbox Code Playgroud)
SWe*_*eko 16
如果您需要代码才能正常工作,您可以始终使用Anytypescript类型,例如:
function ActOnClick(itemClicked: Any, loadPath: string) {
var v1 = itemClicked.offset();
var v2 = itemClicked.width();
var v3 = itemClicked.height();
};
Run Code Online (Sandbox Code Playgroud)
Typescript基本上关闭了一个Any变量,它不会发出任何错误或警告.但是,$("#idCRM")应该返回一个实现JQuery接口的对象,在其中定义jquery.d.ts,因此您应该实际使用:
function ActOnClick(itemClicked: JQuery, loadPath: string) {
var v1 = itemClicked.offset();
var v2 = itemClicked.width();
var v3 = itemClicked.height();
};
Run Code Online (Sandbox Code Playgroud)
的offset(),width()和height()方法在该接口上定义的,并且它们返回Object,number并且number分别.
| 归档时间: |
|
| 查看次数: |
8884 次 |
| 最近记录: |