我想通过下面的函数传递id1,id2和id3.这很好用:
function doSomething(id1,id2,id3) {
$(id1).fadeIn('slow',.25);
$(id1).fadeIn('slow',.25);
$(id1).fadeIn('slow',.25);
};
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
function doSomething(id1,id2,id3) {
setTimeout( " $(id1).fadeIn('slow',.25) ", 300);
setTimeout( " $(id1).fadeIn('slow',.25) ", 300);
setTimeout( " $(id1).fadeIn('slow',.25) ", 300);
};
Run Code Online (Sandbox Code Playgroud)
如何让第二个工作?我的想法是我需要在id周围加上一些标点符号.或者我可以在setTimeout括号内为函数设置变量.有任何想法吗?
setTimeout()评估字符串是不好的做法.相反,使用匿名函数:
function doSomething(id1, id2, id3) {
setTimeout(function() {
$(id1).fadeIn('slow', 0.25);
$(id2).fadeIn('slow', 0.25);
$(id1).fadeIn('slow', 0.25);
}, 300);
};
Run Code Online (Sandbox Code Playgroud)
请注意,我把你所有的fadeIn()s放在一个setTimeout(); 它会做同样的事情,因为你的所有超时都会同时触发(300毫秒).如果您的ID是字符串,您也可以这样做:
function doSomething(id1, id2, id3) {
setTimeout(function() {
$(id1 + ', ' + id2 + ', ' + id3).fadeIn('slow', 0.25);
}, 300);
};
Run Code Online (Sandbox Code Playgroud)
虽然它有点乱,但$.add()可能会有所作为.
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |