我正在用jQuery写一个心理学实验.我想编写一个函数,当用户按下p或q时将开始练习.我有那个工作:
$(function trial() {
$("body").keydown(function(e) {
if (e.which == 81 || e.which == 80)
{
$(".message").text("exercise begun (timestamp)");
var refreshId = setTimeout(timeout, 2000);
}
});
});
Run Code Online (Sandbox Code Playgroud)
但我对一件事感到困惑:这个函数,trial(),自动运行.我想打电话给它,让它运行.例如,这个功能
function timeout(x) {
var x = trialNum
$(".message").prepend("Timeout (Trial " + x + ")<br>");
}
Run Code Online (Sandbox Code Playgroud)
通过trial()调用它会表现得很好,除非被调用,否则它不会运行.我认为这与$符号和"范围"有关?所有帮助赞赏.
哦! 另外,还有一个问题.我试图制作一个递归的jQuery函数,并且遇到了很多麻烦.什么是使函数调用的最佳方法?
T.J*_*der 10
这是因为你将它的引用传递给$()(又名jQuery()),这是ready函数的快捷方式,并在加载DOM时运行.
偏离主题:BTW,通过这样做,你将该函数用作右手值(就像=标志右侧的东西).这使它成为一个函数表达式.既然你已经命名了函数(这是一件好事),它就是一个命名函数表达式.这些在历史上在各种JavaScript实现中都不能很好地工作.大多数当前的浏览器(现在)都可以,除了IE9之前的IE,它将创建两个完全独立的功能,更多这里:Double take
| 归档时间: |
|
| 查看次数: |
3014 次 |
| 最近记录: |