jQuery 计时器与 TypeScript 一起使用
jQuery timer using with TypeScript
我是 TypeScript 的新手,很抱歉这个初学者的问题。
我正在尝试在 TypeScript 中创建一个新的 JQueryTimer 并在按键后启动它。我正在使用 DefinitelyTyped jQuery 和 jQuery.timer 定义。
我的app.ts:
/// < reference path='references.ts'/>
module app {
function addKeyToString(e) {
$("body").timer(
function () {
console.log("This function just got called");
}, 10000, true
);
document.getElementById("typingSpan").innerText += e.char;
}
document.onkeypress = addKeyToString;
}
我的 index.html 看起来像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
<script src="lib/jquery/jquery.js"></script>
<script src="lib/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="app.js"></script>
<script src="lib/jquery/jquery.timer.js"></script>
<link rel="stylesheet" href="app.css" type="text/css" />
</head>
<body>
<h1>TypeScript HTML App</h1>
WriteHere: <span id="typingSpan"></span>
</body>
</html>
当我尝试启动它并按下一个键时,我收到运行时错误(在我的函数的第一行),它说:
Object doesn't support property or method 'timer'
有人能告诉我解决我的问题的方法是什么吗?我检查了 DefinitelyTyped 示例,并基于它应该可以工作。这是link:Link
您应该参考库的文档,https://github.com/jchavannes/jquery-timer
这给出了示例用法:
var timer = $.timer(function() {
alert('This message was sent by a timer.');
});
d.ts 文件的测试不一定正确,不应用作参考文档。我不知道为什么这个看起来是错误的。
我猜 TypeScript 测试(不是库作者编写的)可能在它创建时(2013 年)就起作用了,同时对 TypeScript 进行了重大更改。 (这纯粹是我的猜测,但整个 TypeScript / ECMAScript 故事现在处于不断变化的状态。)
有时最简单和最面向未来的事情就是让 JavaScript 成为 JavaScript,然后将抱怨的代码放在 JavaScript 包装函数中。在 .js 文件或 <script>
标记内,做一些 like this
function createTimer() {
var timer = $.timer(function () {
timerCallback();
});
timer.set({ time: 1000, autostart: false });
return timer;
}
在您的 .ts 文件中声明 var timer
和 function timerCallback() { }
。这将允许您在 TypeScript 中使用计时器对象,尽管它没有 Intellisense。
要初始化它,做一些像这样的事情:
$(document).ready(function () {
timer = createTimer();
$(".start").click(function () {
timer.play();
});
});
我是 TypeScript 的新手,很抱歉这个初学者的问题。
我正在尝试在 TypeScript 中创建一个新的 JQueryTimer 并在按键后启动它。我正在使用 DefinitelyTyped jQuery 和 jQuery.timer 定义。
我的app.ts:
/// < reference path='references.ts'/>
module app {
function addKeyToString(e) {
$("body").timer(
function () {
console.log("This function just got called");
}, 10000, true
);
document.getElementById("typingSpan").innerText += e.char;
}
document.onkeypress = addKeyToString;
}
我的 index.html 看起来像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
<script src="lib/jquery/jquery.js"></script>
<script src="lib/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="app.js"></script>
<script src="lib/jquery/jquery.timer.js"></script>
<link rel="stylesheet" href="app.css" type="text/css" />
</head>
<body>
<h1>TypeScript HTML App</h1>
WriteHere: <span id="typingSpan"></span>
</body>
</html>
当我尝试启动它并按下一个键时,我收到运行时错误(在我的函数的第一行),它说:
Object doesn't support property or method 'timer'
有人能告诉我解决我的问题的方法是什么吗?我检查了 DefinitelyTyped 示例,并基于它应该可以工作。这是link:Link
您应该参考库的文档,https://github.com/jchavannes/jquery-timer
这给出了示例用法:
var timer = $.timer(function() {
alert('This message was sent by a timer.');
});
d.ts 文件的测试不一定正确,不应用作参考文档。我不知道为什么这个看起来是错误的。
我猜 TypeScript 测试(不是库作者编写的)可能在它创建时(2013 年)就起作用了,同时对 TypeScript 进行了重大更改。 (这纯粹是我的猜测,但整个 TypeScript / ECMAScript 故事现在处于不断变化的状态。)
有时最简单和最面向未来的事情就是让 JavaScript 成为 JavaScript,然后将抱怨的代码放在 JavaScript 包装函数中。在 .js 文件或 <script>
标记内,做一些 like this
function createTimer() {
var timer = $.timer(function () {
timerCallback();
});
timer.set({ time: 1000, autostart: false });
return timer;
}
在您的 .ts 文件中声明 var timer
和 function timerCallback() { }
。这将允许您在 TypeScript 中使用计时器对象,尽管它没有 Intellisense。
要初始化它,做一些像这样的事情:
$(document).ready(function () {
timer = createTimer();
$(".start").click(function () {
timer.play();
});
});